У меня есть набор данных, в котором идентификатор последовательно проходит этапы от A до D (от A до B, от B до C и от C до D).
У меня есть метки времени, которые отслеживают, когда идентификатор входит в конкретную стадию. Вот как выглядят мои данные
Поэтому я заинтересован в создании поля под названием «Статус», который показывает число B, C, D, преобразованное на основе временной метки A
Например;
В месяце Aug'19 Число 'A's= 7
Число 'B', преобразованное, когда отметка времени A равна 19 августа (независимо от даты в поле Date_B) = 5
Theчисло 'C', преобразованное, когда отметка времени A - 19 августа (независимо от даты в поле Date_C) = 5
Число 'D', преобразованное, когда отметка времениA - это Aug'19 (независимо от даты в Date_D) = 5
Я пытался использовать union all, , но его дает мне «Status» в реальном временизначение времени 'date_B' под идентификатором 1 получает дату 19 сентября, а не 19 августа. Это запрос, который я использовал;
SELECT id,
CAST (Date_A AS DATE) AS 'Pivot Date',
'A' AS 'Status'
FROM table1
UNION ALL
SELECT id,
CAST (Date_B AS DATE) AS 'Pivot Date',
'B' AS 'Status'
FROM table1
UNION ALL
SELECT id,
CAST (Date_C AS DATE) AS 'Pivot Date',
'C' AS 'Status'
FROM table1
UNION ALL
SELECT id,
CAST (Date_D AS DATE) AS 'Pivot Date',
'D' AS 'Status'
FROM table1
Может ли кто-нибудь указать мне правильное направление?
Спасибо!