Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server T-SQL查询,可以汇总当前月份的费用,即所有月份的合计平均值_Sql Server_Tsql_Aggregate Functions_Average - Fatal编程技术网

Sql server T-SQL查询,可以汇总当前月份的费用,即所有月份的合计平均值

Sql server T-SQL查询,可以汇总当前月份的费用,即所有月份的合计平均值,sql-server,tsql,aggregate-functions,average,Sql Server,Tsql,Aggregate Functions,Average,我有一张有月票、月票、费用单的桌子 我需要一份报告,显示当前月份的总和,以及该月的平均值 这就是我目前得到的 SELECT dt.Date, dt.Other_Revenue, dt.Month_Id, dt.Date_Year FROM S1_Rpt_Daily_Totals WHERE (dt.Month_Id = MONTH(GETDATE())) 逻辑-将2012年、2011年、2010年等9月的费用加起来,除以年数得到我的平均数 但是在SQL查询中如

我有一张有月票、月票、费用单的桌子

我需要一份报告,显示当前月份的总和,以及该月的平均值

这就是我目前得到的

SELECT     dt.Date, dt.Other_Revenue, dt.Month_Id, dt.Date_Year
FROM         S1_Rpt_Daily_Totals 
WHERE     (dt.Month_Id = MONTH(GETDATE()))
逻辑-将2012年、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

此解决方案仅使用日期,因此如果它有效,您可能会删除月份id和日期年份。

您的表def与查询不匹配。更正表-月份id、日期VARCHAR、收入MONEY。日期谢谢你指出。你的表格里只有一年的数据吗?如果没有,您需要将年份添加到使用clauseYear作为获取数据方法的年份中。我不认为一定是约会。但是我愿意接受建议。嗨,贝丝,有5年的数据。所以我需要总结我的九月数,然后除以年数,这可以用Sql中的某种变量来表示吗?好的,我试过了。没有得到结果。我将公布表格的定义。谢谢你的努力。例如:我需要知道我这个月的平均费用是多少,把过去的9月加起来,除以年数。如果你已经知道了日期,你为什么需要月号和日期?谢谢你,约翰。我想这可能行。至少从逻辑上来说,这是我一直在寻找的。这个留言板棒极了。更新成功了,这正是我想要的。明亮的