Нарастающая дата в запросе

Revita
Дата: 16.10.2003 09:02:44
Как создать запрос результатом которого будет 365 строк в каждой из которой будет находиться дата на день больше предыдущей

01.01.2003
02.01.2003
03.01.2003
.........
MFT400
Дата: 16.10.2003 09:07:35
select convert(datetime, '20030101') + n3.num*100+n2.num*10+n1.num as date from
(select 0 as num union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) n1,
(select 0 as num union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) n2,
(select 0 as num union select 1 union select 2 union select 3)n3
tpg
Дата: 16.10.2003 09:31:59
Тогда уж
select top 365 * from(

select convert(datetime, '20030101') + n3.num*100+n2.num*10+n1.num as date from
(select 0 as num union select 1 union select 2 union select 3 union select 4
union select 5 union select 6 union select 7 union select 8 union select 9) n1,
(select 0 as num union select 1 union select 2 union select 3 union select 4
union select 5 union select 6 union select 7 union select 8 union select 9) n2,
(select 0 as num union select 1 union select 2 union select 3)n3
) a order by date
Revita
Дата: 16.10.2003 10:16:56
порылась немного в форуме и творчески преобразовав найденное наваяла вот что

select top 365 dateadd(dd, -Day(getdate()), dateadd(mm,-Month(getdate())+1,getDate())) +(select count(*) from master..sysobjects where id<=a.id) AS d
from master..sysobjects a Order by d

по-моему неплохо:-) мож кто какие замечания внесет? спасибо за оперативные ответы
tpg
Дата: 16.10.2003 10:36:06
Всё бы ничего, да только у меня запрос /topic/53931#378775 имеет стоимость 0,0576 против 0,798, которую дает этот
select top 365 dateadd(dd, -Day(getdate()), dateadd(mm,-Month(getdate())+1,getDate())) +\r
(select count(*) from master..sysobjects where id<=a.id) AS d \r
from master..sysobjects a Order by d \r
Revita
Дата: 17.10.2003 02:36:12
Сенкс.. тогда воспользуюсь, конечно вашим запросом. Была бы благодарна за ответ - как оценить эту стоимость, для дальнейшей, так сказать, плодотворной работы.

ну что поделать.. не все же умники...)
tpg
Дата: 17.10.2003 06:51:48
как оценить эту стоимость, для дальнейшей, так сказать, плодотворной работы.
Например, в QA перед выполнением запроса нажать Ctrl+K, а после выполнения посмотреть на соответствующей закладочке.
tpg
Дата: 17.10.2003 14:31:00
О! У такого запроса
select top 365 * from(

select convert(datetime, '20030101') + n3.num*100+n2.num*10+n1.num as date from
(select 0 as num
union all select 1
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9) n1,
(select 0 as num
union all select 1
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9) n2,
(select 0 as num
union all select 1
union all select 2
union all select 3)n3
) a order by date
план ещё круче!!! Стоимость составила у меня 0,0191.
bushmen
Дата: 17.10.2003 14:36:05
2 tpg :
А сколько это в евро будет?
iSestrin
Дата: 18.10.2003 09:05:40
лучшее - враг хорошего, а хороший вариант - это банальная табличка с календарем, иначе потом вопрос возникает, как определять выходные, а далее праздники, а вот с праздниками уже никак