4
私のテーブルにGROUP BY
を使用して、週ごとにエントリをグループ化しようとしています。ただし、特定の週にエントリがない場合、欠落しているエントリに対して、どのように0を挿入できますか?GROUP BYを実行中に不足しているエントリを挿入しますか?
CREATE TABLE #TEMP (startdate datetime)
INSERT INTO #TEMP VALUES('2011-02-01')
INSERT INTO #TEMP VALUES('2011-02-02')
INSERT INTO #TEMP VALUES('2011-02-03')
INSERT INTO #TEMP VALUES('2011-02-04')
INSERT INTO #TEMP VALUES('2011-02-05')
INSERT INTO #TEMP VALUES('2011-02-18')
INSERT INTO #TEMP VALUES('2011-02-19')
INSERT INTO #TEMP VALUES('2011-02-20')
INSERT INTO #TEMP VALUES('2011-02-21')
SELECT DATEPART(YEAR,startdate) AS 'AYear',
DATEPART(wk,startdate) AS 'AWeek',
COUNT(*)
FROM #TEMP
GROUP BY DATEPART(YEAR,startdate),DATEPART(wk,startdate)
ORDER BY 1,2
DROP TABLE #TEMP
私が取得しています:
AYear AWeek (No column name)
2011 6 5
2011 8 2
2011 9 2
が、私はこれ欲しい:これを行う方法について
AYear AWeek (No column name)
2011 6 5
2011 7 0
2011 8 2
2011 9 2
任意の提案を?
+1です。 0カウントを表示するには、おそらくCOUNT(*)をCOUNT(startdate)に変更する必要があります。 – bobs
パーフェクト!ありがとう!私は受け入れタイムアウトの後にこれを受け入れます。 – Legend