Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разбиение по месяцам с вставкой недостающих строк  [new]
Semyglass
Member

Откуда: Санкт-Петербург
Сообщений: 407
Добрый день!
Имеется таблица A со следующими полями:

Date (datetime)
Count (int)

нужно организовать запрос который возвращал бы 12 строк (по месяцам) при условии что если в исходной таблице не хватает данных, например для декабря, то в Count подставлялся бы 0.

на выходе должно быть что-то такое:
Mounth Count
1 675
2 786
3 763
4 42
5 7856
6 343
7 213
8 0
9 435
10 64
11 324
12 0

Сейчас у меня есть такой запрос:
SELECT DATEPART(mm, Date) As Mounth, SUM(ISNULL(Count, 0)) AS Count FROM A GROUP BY DATEPART(mm, Date)

как вставить недостающие записи?
26 май 09, 12:06    [7227577]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение по месяцам с вставкой недостающих строк  [new]
Peisov
Member

Откуда: СПб
Сообщений: 203
Ну я бы сгенерил вспомогательную табличку с числами от 1 до 12 и плясал бы от нее.
26 май 09, 12:09    [7227597]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение по месяцам с вставкой недостающих строк  [new]
Saller
Member

Откуда: exUSSR
Сообщений: 1141
Можно через курсор с использование счетчика попробовать.
26 май 09, 12:10    [7227607]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение по месяцам с вставкой недостающих строк  [new]
Semyglass
Member

Откуда: Санкт-Петербург
Сообщений: 407
спасибо за идеи
26 май 09, 12:13    [7227618]     Ответить | Цитировать Сообщить модератору
 Re: Разбиение по месяцам с вставкой недостающих строк  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
derived table из 12 пронумерованных строк по одной на каждый месяц + LEFT JOIN с таблицей A
26 май 09, 12:18    [7227658]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить