繁体   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