Я работаю над набором данных, содержащим логистические движения вещей.При визуализации материала, который мы хотели бы отфильтровать, например, от A до A (это безумие возникает в наборе данных).
Скажем, у меня есть набор данных, выглядящий так: Оборудование содержит идентификатор материала, которыйперемещение, ИЗ и В складские помещения, TIME_FROM, когда материал был перемещен в склад FROM, и TIME_TO, когда материал был перемещен в склад TO.
EQUIPMENT FROM_MAG TO_MAG TIME_FROM TIME_TO
1 A B 1 2
1 B C 2 3
1 C D 3 4
1 D D 4 5
1 D E 5 6
1 E F 6 7
1 F F 7 8
1 F F 8 9
1 F G 9 10
Чем мне нужен вывод измой запрос без D -> D и двух движений F -> F, но с логическим продолжением временных столбцов:
EQUIPMENT FROM_MAG TO_MAG TIME_FROM TIME_TO
1 A B 1 2
1 B C 2 3
1 C D 3 5
1 D E 5 6
1 E F 6 9
1 F G 9 10
Я пытался использовать подобные запросы, но это не дает мнежелаемый результат.Кстати, я работаю над SAP HANA.
SELECT
EQUIPMENT,
FROM_MAG,
TO_MAG,
min(TIME_FROM),
max(TIME_TO)
FROM MOVEMENTS
GROUP BY EQUIPMENT,
FROM_MAG,
TO_MAG;
Создание оператора для SQL:
CREATE TABLE IF NOT EXISTS MOVEMENTS(
EQUIPMENT NVARCHAR(1) NOT NULL PRIMARY KEY
,FROM_MAG NVARCHAR(1) NOT NULL
,TO_MAG NVARCHAR(1) NOT NULL
,TIME_FROM NVARCHAR(1) NOT NULL
,TIME_TO NVARCHAR(2) NOT NULL
);
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'A',N'B',N'1',N'2');
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'B',N'C',N'2',N'3');
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'C',N'D',N'3',N'4');
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'D',N'D',N'4',N'5');
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'D',N'E',N'5',N'6');
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'E',N'F',N'6',N'7');
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'F',N'F',N'7',N'8');
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'F',N'F',N'8',N'9');
INSERT INTO MOVEMENTS(EQUIPMENT,FROM_MAG,TO_MAG,TIME_FROM,TIME_TO) VALUES
(N'1',N'F',N'G',N'9',N'10');