簡體   English   中英

可匯總當月費用的T-SQL查詢,即所有月份的總和

[英]T-SQL query that can sum up expenses for the current month, what that sumed average is for all months

我有一個帶有Month_Id(int), Year(nvarchar), Expenses(money)

我需要一個報告來顯示當前月份的總和,以及該月份的平均值。

這就是我到目前為止所得到的。

SELECT     dt.Date, dt.Other_Revenue, dt.Month_Id, dt.Date_Year
FROM         S1_Rpt_Daily_Totals 
WHERE     (dt.Month_Id = MONTH(GETDATE()))

邏輯-將2012年9月,2011年和2010年9月的支出總和除以年數,得出我的平均值。

但是如何在SQL查詢中執行此操作。 可能嗎?

免責聲明-我在SQL領域還很陌生。

SELECT MONTH(Date), sum(Expenses), avg(Expenses)
FROM S1_Rpt_Daily_Totals
GROUP BY MONTH(Date);

但是我不確定您的表的定義是什么-我只是從給定的SQL中猜到的。

假設您正在使用SQL Server 2005+,則應該可以使用以下命令:

;with a(sumexpenses, [month])
as
(
select  SUM(Expenses)
        ,DATEADD(month, datediff(month,0,[Date]), 0)
from    S1_Rpt_Daily_Totals
group by 
        DATEADD(month, datediff(month,0,[Date]), 0)
)

select  a1.[month]
        ,a1.sumexpenses
        ,AVG(a2.sumexpenses) as average
from    a a1
join    a a2
    on  MONTH(a1.[month]) = MONTH(a2.[month])
group by 
        a1.[month]
        ,a1.sumexpenses

該解決方案僅使用日期,因此如果可行,您可能會擺脫month_id和date_year。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM