[英]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.