Вопрос по выборке...SQL

Компьютеры программирование sql MSSQL

У меня есть выборка
SELECT DAY(Request.mDate),COUNT(Request.Id) ,SUM(Request.SummAll)
WHERE (Request.mDate BETWEEN '20121001' AND '20121101')
GROUP BY DAY(Request.mDate)

chislo | summa | kolichestvo obrasheniy
3 | 10 | 1
5 | 30 | 1
15 | 8 | 2
28 | 21 | 1


Нужно сделать выборку за каждый день месяца и если нет значений за это число - ставить NULL
тоесть должно получиться следущее:

1 | NULL | NULL
2 | NULL | NULL
3 | 10 | 1
4 | NULL | NULL
5 | 30 | 1
и.т.д.
покажите пожалуйста как такое делается?
Ответы:
ну то есть вы хотите выбрать из базы те записи, которых реально нет?
или я что-то не так понял?
Нужно создать таблицу Calendar, которая содержит все даты и объединить по join с этой выборкой.
Другой разговор, что join должен быть раньше чем group и SUM.
Кстати это позволит избавится от функции Day, которая в данном контексте работает медлено, а номер дня один раз вычислить в таблице Calendar.
Почитай как это делается в книгах Джо Селко


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.