У меня есть веб-сайт ASP.NET с бэкэндом C #, использующим MSSQL SQL Server 2008 для его содержимого.
Я написал следующую хранимую процедуру, которая проверяет все записи в течение последних 7 дней, а затемвозвращает то, что находит.
ALTER PROCEDURE [dbuser].[GetResponses]
(
@QUEST_ID int
)
AS
SELECT DateAdded, SUM(Responses) AS responseCount
FROM ActiveResponses
WHERE @QUEST_ID = QuestionnaireID AND DateAdded >= dateadd(day,datediff(day,0,GetDate())- 6,0)
GROUP BY DateAdded
RETURN
Моя проблема здесь в том, что если в течение какого-либо из этих последних 7 дней не существует записей, то мой метод на задней стороне веб-сайта завершится ошибкой, так как для этого потребовалось 7 записей.Например:
Допустим, у меня есть следующие записи в моей таблице
-DateAdded--------Responses
2012-02-12 4
2012-02-11 5
2012-02-10 8
2012-02-08 7
2012-02-07 3
Обратите внимание, что нет записей для обоих 2012-02-13 (сегодня)и 2012-02-09
Как создать оператор SQL, который проверяет количество ответов за последние 7 дней, и если для любого из них найдены записи no в один из дней он создает запись с ответом 0 в правильной позиции?