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

Откуда: Украина
Сообщений: 29
2011-01-01
2011-02-01
2011-03-01
2011-04-01
2011-05-01
2011-06-01
2011-07-01
2011-08-01
2011-09-01
2011-10-01
2011-11-01
2011-12-01

(Диапазон дат произвольный)
25 фев 13, 16:55    [13978183]     Ответить | Цитировать Сообщить модератору
 Re: Каким запросом можно вывести такую таблицу?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
declare @start date = '20110101', @end date = '20111201';

with cte as
(   select @start as dat

    union all

    select dateadd(month, 1, c.dat)
    from cte c
    where dateadd(month, 1, c.dat) <= @end
)
select c.dat
from cte c;
25 фев 13, 16:59    [13978210]     Ответить | Цитировать Сообщить модератору
 Re: Каким запросом можно вывести такую таблицу?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
SQL2005: популярные задачи форума и CTE

эх, если бы в Вашей БД была таблица-календарь...
25 фев 13, 17:00    [13978217]     Ответить | Цитировать Сообщить модератору
 Re: Каким запросом можно вывести такую таблицу?  [new]
Philosopher
Member

Откуда: Украина
Сообщений: 29
Спасибо! )
25 фев 13, 17:00    [13978222]     Ответить | Цитировать Сообщить модератору
 Re: Каким запросом можно вывести такую таблицу?  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
еще вариант:) (до 2к строк)
declare @start date='20110101', @n_mes int=24
select DATEADD(MONTH,number,@start) from master..spt_values where type='P' and number between 0 and @n_mes-1
25 фев 13, 19:22    [13979060]     Ответить | Цитировать Сообщить модератору
 Re: Каким запросом можно вывести такую таблицу?  [new]
Добрый Э - Эх
Guest
Cygapb-007,

а если хотя бы один раз закроссджойнить её саму на себя, то уже не до 2К строк будет, а до 4М :)
26 фев 13, 04:52    [13980419]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить