当月と当年の集計を同時に出す
取引先 | 当月売上合計 | 当年売上合計 |
---|---|---|
aaa | 350 | 1000 |
みたいに、当月と当年*1の集計を同時に行いたい場合、
SELECT T.cust_name AS N'取引先' , SUM(CASE MONTH(T.date) WHEN MONTH(GETDATE()) THEN T.sales ELSE 0 END) AS N'当月売上合計' , SUM(T.sales) AS N'当年売上合計' FROM SomeTable T WHERE YEAR(T.date) = YEAR(GETDATE()) ;
と、WHERE 句で範囲を当年に絞っておき、SELECT 句で当月を出すときに月で振り分ければいい。
これが年度になるともうちょっといろいろあるけど、基本的にはこの方針で出来る。
あー、SomeTable.date にインデックスがあるなら、T.date BETWEEN '2009-1-1' AND GETDATE() みたいに*2 *3 した方がいいかも。