0

たとえば、日付の値に基づいて行を複数の行に分割するロジックを実装しようとしています。私はこのような1つのレコードを持っています

Col1   Col2   Start_dat    End_dat     Last_dat    Next_dat
=====  ====   =========    =======     ========    ======== 
A      B      01-01-13     01-31-13    01-04-13    02-04-13

現在、2 連続で記録を上回っています。

Col1   Col2   New_Start_dat    NewEnd_dat     Last_dat    Next_dat
=====  ====   =============    ==========     ========    ======== 
A      B      01-04-13         01-31-13       01-04-13    02-04-13

A      B      02-01-13         02-04-13       01-04-13    02-04-13

注:- 日付は mm-dd-yy 形式です。

4

1 に答える 1

0

あなたはあなたの論理を本当に説明していません。次のようなものだと思います:

select col1, col2, last_dat, as New_Start_dat, End_Dat as NewEnd_dat, last_dat, next_dat
from t
union all
select col1, col2, End_Dat + 1 as NewStart_dat, next_dat as NewEnd_Dat, last_dat, next_dat;
from t

多くのデータベースでは1、日付に追加すると 1 日が追加されます。dateadd(day, 1, End_Dat)またはのようなものかもしれませんdateadd(1, Ent_Dat)

また、これは、日付が実際には日付形式で格納されており、そのdd-mm-yy形式は出力のみを目的としていることを前提としています。

于 2013-08-24T14:23:31.710 に答える