1

のテーブルがあります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年の費用の合計を計算し、年数で割って平均を求めます。

しかし、SQLクエリでこれを行うにはどうすればよいですか。出来ますか?

免責事項-私はSQLにかなり慣れていません。

4

2 に答える 2

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

しかし、私はあなたのテーブルの定義が何であるかわかりません-私は与えられたSQLから推測しただけです。

于 2012-09-06T13:36:52.593 に答える
0

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を削除することができます。

于 2012-09-06T14:20:47.630 に答える