問題の解決策を見つけようとしています。グループ化された連続した日付をマージする
私の知る限り、SQL Serverのバージョン(2008r2)はこれを制限する要素ですが、私はそこに解決策があると肯定的です。
次のように私の問題がある:
Aは、顧客ステータス-DateStart-DateEnd-イベントIDの形で潜在的な連続した日付を持つテーブルがあります。
お客様とステータス別に連続した日付をマージする必要があります。ステータスフィールドは、顧客の経路全体で上下に移動できます。
次のようにいくつかの例データは、次のとおり
DECLARE @Tbl TABLE([CustomerID] INT
,[Status] INT
,[DateStart] DATE
,[DateEnd] DATE
,[EventID] INT)
INSERT INTO @Tbl
VALUES (1,1,'20160101','20160104',1)
,(1,1,'20160104','20160108',3)
,(1,2,'20160108','20160110',4)
,(1,1,'20160110','20160113',7)
,(1,3,'20160113','20160113',9)
,(1,3,'20160113',NULL,10)
,(2,1,'20160101',NULL,2)
,(3,2,'20160109','20160110',5)
,(3,1,'20160110','20160112',6)
,(3,1,'20160112','20160114',8)
所望の出力:
Customer | Status | DateStart | DateEnd
---------+--------+-----------+-----------
1 | 1 | 2016-01-01| 2016-01-08
1 | 2 | 2016-01-08| 2016-01-10
1 | 1 | 2016-01-10| 2016-01-13
1 | 3 | 2016-01-13| NULL
2 | 1 | 2016-01-01| NULL
3 | 2 | 2016-01-09| 2016-01-10
3 | 1 | 2016-01-10| 2016-01-14
任意のアイデア/コード大幅に受信されます。
おかげで、
ダン
オーダーしてみてください、あなたは私たちが保存する方法オーダー ? – TheGameiswar
ORDERステートメントで使用できるEventID列を含めるように質問が更新されました –
これをどのように選択しますか?2016-01-13 | NULL? – NEER