私はここにタフなものを持っていると思うことで、グループ内の欠落ヶ月を含め、ゼロここで、問題のクエリです:。は、ときに私がしても、月ごとの注文数を取得しようとしています</p> <p>:(...クエリ
SELECT datename(month, OrderDate) as Month, COUNT(OrderNumber) AS Orders
FROM OrderTable
WHERE OrderDate >= '2012-01-01' and OrderDate <= '2012-06-30'
GROUP BY year(OrderDate), month(OrderDate), datename(month, OrderDate)
私は何を得るために探していることは、このようなものです:
Month Orders
----- ------
January 10
February 7
March 0
April 12
May 0
June 5
...しかし、私のクエリは、3月と月の行をスキップし、私はCOALESCE(COUNT(OrderNumber), 0)
とISNULL(COUNT(OrderNumber), 0)
を試みたが、私はかなり確信しています。グループ分けはcaそれを使って働かないでください。
それは 'OrderTable'は3月か月のためのレコードを持っていないようなので、一人でこの表から選択するものを数ヶ月のために結果を返すことはできませんに見えます。考えられる回避策:データベースに日付のマスター表がある場合は、それを活用することも、日付の独自の表を作成することもできます。 –
@andyholadayが言ったように、1月〜12月のルックアップテーブルを作成し、左の結合を行うと、不足した月が得られます。 – kd7