0

ストアドプロシージャがあり、テーブルに日付列を追加したいと思います。次に、MS-SQLでCTEを使用してオンザフライで複数の行を生成するにはどうすればよいでしょうか。私はこれを持っていると言います。

(GETDATE()-548)-(365日-> 12か月、548日->18か月..

548行を作成し、日付列を行として持つクエリをどのように作成しますか

#1-'2012年12月17日 '
#2-'2012年12月16日 '
#3-'2012年12月15日 '

など、行#548までずっと?そのすべてをCTEに入れますか?

ありがとう...

4

1 に答える 1

3

何かが欠けていない限り、次のものが必要なようです。

;with dates(value) as
(
    select DATEADD(d, -548, cast(getdate() as DATE))
    union all
    select DATEADD(D, 1, value)
    from dates
    where DATEADD(D, 1, value) <= cast(getdate() as DATE)
)
select *
from dates
order by value desc
OPTION (MAXRECURSION 1000)

デモで SQL Fiddle を参照してください

于 2012-12-17T18:34:35.790 に答える