Я пытаюсь использовать GROUP BY
в моей таблице для группировки записей по неделям. Однако, если на определенной неделе нет записей, как я могу вставить 0 вместо пропущенной записи?
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
Любые предложения о том, как это сделать?