1

列を持つテーブルがありますCategory, Date, Monthly_Revenue

Todays_Month、、Last_Month2 か月前、、、Last_years_Month今日の月の平均、すべての月の平均を 選択するクエリが必要です。

このクエリは、カテゴリ別にグループ化する必要があります。

例 :

Category | Sept, 2012 | Aug, 2012| Jul, 2012 | Sept, 2011 | Average of Sept | Avg all Mo

SQL にかなり慣れていないので、まだ理解できていません。そこにいる誰かがそれをクラックできるかどうか見てみようと思いました。ありがとう。

サンプルデータ

'Burger'  '9/1/2012'   '500'
'Fries'  '10/1/2012    '300'
'Burger'  '6/1/2011'   '250'
4

1 に答える 1

1

これらの線に沿って何かが必要です。最適な解決策ではありませんが、開始点になります。これは静的な解決策ですが、動的な解決策が必要なようです

*未検証

 SELECT 
 Category
,[Sep 2012]=SUM(CASE WHEN YEAR(TranDate)= YEAR(GETDATE()) AND MONTH(TranDate)= MONTH(GETDATE()) THEN Amount ELSE NULL END)
,[Aug 2012]=SUM(CASE WHEN  YEAR(TranDate)= YEAR(DATEADD(month,-1,GETDATE())) AND MONTH(TranDate)= MONTH(DATEADD(month,-1,GETDATE()))  THEN Amount ELSE NULL END)
,[Jul 2012]=SUM(CASE WHEN YEAR(TranDate)= YEAR(DATEADD(month,-2,GETDATE())) AND MONTH(TranDate)= MONTH(DATEADD(month,-2,GETDATE())) THEN Amount ELSE NULL END)
,[AVG Sep 2012]=AVG(CASE WHEN YEAR(TranDate)= YEAR(GETDATE()) AND MONTH(TranDate)= MONTH(GETDATE()) THEN Amount ELSE NULL END)
,[AVG 12 months]=AVG(CASE WHEN TranDatee > CAST(DATEADD(year,-1,GETDATE()) AS DATE) THEN Amount ELSE NULL END)/12
FROM Table1
GROUP BY Category,Amount
于 2012-09-11T23:18:09.823 に答える