Я пытаюсь сделать следующее.Настоящим небольшой фрагмент данных, о которых я говорю.У нас есть человек, который может иметь разные коды в разные даты.
DECLARE @t TABLE (PersonId INT, CDate DATE, Code VARCHAR(20))
INSERT INTO @t VALUES
(2345,'20161010','V1'),(2345,'20170104','V2'),(2345,'20170320','V3'),(2345,'20170612','V4'),
(2421,'20161005','UNS'),(2421,'20161102','V1'),(2421,'20170118','V2'),(2421,'20170418','V3'),
(2421,'20170712','V4'),(2421,'20171004','V5'),(2421,'20171220','V6'),(2421,'20180113','LFM'),
(2421,'20180321','V7'),(2421,'20180822','V8'),(2421,'20190220','V9'),(2421,'20190315','EOT'),
(2430,'20161020','V1'),(2430,'20170116','V2'),(2430,'20170413','V3'),(2430,'20170726','EOT'),
(3004,'20161110','V1'),(3004,'20170131','V2'),(3004,'20170425','V3'),(3004,'20170503','LFM'),
(3004,'20170512','LFM'),(3004,'20170718','V4'),(3004,'20170725','LFM'),(3004,'20171010','V5'),
(3004,'20180102','V6'),(3004,'20180108','LFM'),(3004,'20180115','LFM'),(3004,'20180125','UNS'),
(3004,'20180328','V7'),(3004,'20180406','LFM'),(3004,'20180911','V8'),(3004,'20190227','V9'),
(3004,'20190306','LFM'),(3004,'20190313','UNS'),
(31740,'20190514','V1')
Результат, который мы ищем, следующий.Я добавил PersonId's справа как дополнительную информацию, чтобы вы могли видеть, какие из них должны учитываться.Коды в конечном результате должны быть в последовательности CDate для всех разных лиц.Код EOT должен быть последним.
RowNr Code Total |
========================|
1 UNS 1 | 2421
2 V1 5 | 2345,2421,2430,3004,31740
3 V2 4 | 2345,2421,2430,3004
4 V3 4 | 2345,2421,2430,3004
5 LFM 1 | 3004
6 LFM 1 | 3004
7 V4 3 | 2345,2421,3004
8 LFM 1 | 3004
9 V5 2 | 2421,3004
10 V6 2 | 2421,3004
11 LFM 2 | 2421,3004
12 LFM 1 | 3004
13 UNS 1 | 3004
14 V7 2 | 2421,3004
15 LFM 1 | 3004
16 V8 2 | 2421,3004
17 V9 2 | 2421,3004
18 LFM 1 | 3004
19 UNS 1 | 3004
20 EOT 2 | 2421,2430
Кто-нибудь, кто мог бы дать отправную точку или помочь нам в том, как этого добиться?