Я хочу добиться вывода одной строки из нескольких строк менее чем в 3 случаях с помощью Teradata SQL Assistant. Может ли кто-нибудь помочь мне создать общий запрос, который может обрабатывать все ниже 3 случая. Любая помощь высоко ценится.
Дело 1:
Существующие данные
ACCOUNT_ID ACCOUNT_NUMBER DEVICE_TYPE FIRMWARE_VERSION LABEL DEVICE_START_DT DEVICE_END_DT
1 100217 0110527 Camera 1.0.02R22 My Camera 5 10/25/2015 17:56:09.000 10/29/2015 23:59:59.000
2 100217 0110527 Camera 1.0.02R22 Pool 10/30/2015 18:00:13.000 9/27/2016 23:59:59.000
Данные, которые я хочу
ACCOUNT_ID ACCOUNT_NUMBER DEVICE_TYPE FIRMWARE_VERSION LABEL DEVICE_START_DT DEVICE_END_DT
1 100217 0110527 Camera 1.0.02R22 Pool 10/25/2015 17:56:09.000 9/27/2016 23:59:59.000
Корпус - 2:
Существующие данные
ACCOUNT_ID ACCOUNT_NUMBER DEVICE_TYPE FIRMWARE_VERSION LABEL DEVICE_START_DT DEVICE_END_DT
1 10006 0161969 Peripheral-router V1.2.2.79 Network Peripheral 12/17/2014 23:12:32.000 7/8/2015 23:59:59.000
2 10006 0161969 Peripheral-router V1.2.2.82 Network Peripheral 7/9/2015 21:34:39.000 2/16/2016 23:59:59.000
10006 0161969 Peripheral-router V1.2.2.86 Network Peripheral 2/17/2016 16:27:12.000 8/17/2016 23:59:59.000
Данные, которые я хочу
ACCOUNT_ID ACCOUNT_NUMBER DEVICE_TYPE FIRMWARE_VERSION LABEL DEVICE_START_DT DEVICE_END_DT
10006 0161969 Peripheral-router V1.2.2.86 Network Peripheral 12/17/2014 23:12:32.000 8/17/2016 23:59:59.000
Случай 3: где некоторые записи имеют начало устройства dt> конец устройства dt
Существующие данные
ACCOUNT_ID ACCOUNT_NUMBER DEVICE_TYPE FIRMWARE_VERSION LABEL DEVICE_START_DT DEVICE_END_DT
100526 84990534 Camera 3.0.02.54 Back Door 5/8/2019 15:55:30.000 6/2/2019 23:59:59.000
100526 84990534 Camera 3.0.02.54 Back Door 6/3/2019 22:31:06.000 6/25/2019 23:59:59.000
100526 84990534 Camera 3.0.02.54 Back Door 6/26/2019 15:52:57.000 7/19/2019 23:59:59.000
100526 84990534 Camera 3.0.02.54 Back Door 7/21/2019 03:40:11.000 7/20/2019 23:59:59.000
100526 84990534 Camera 3.0.02.54 Back 7/21/2019 13:03:56.000 10/23/2019 23:59:59.000
Данные, которые я хочу
ACCOUNT_ID ACCOUNT_NUMBER DEVICE_TYPE FIRMWARE_VERSION LABEL DEVICE_START_DT DEVICE_END_DT
100526 84990534 Camera 3.0.02.54 Back 5/8/2019 15:55:30.000 10/23/2019 23:59:59.000
Случай 4: где некоторые записи имеют начало устройства dt> конец устройства dt
Существующие данные
ACCOUNT_ID ACCOUNT_NUMBER DEVICE_TYPE FIRMWARE_VERSION LABEL DEVICE_START_DT DEVICE_END_DT
1000027 84957524 Peripheral-gateway ? Network Peripheral 8/13/2017 12:24:42.000 8/20/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 8/21/2017 08:49:08.000 8/25/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 8/27/2017 02:42:46.000 8/26/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 8/28/2017 06:33:50.000 8/28/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 8/30/2017 02:35:32.000 8/31/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 9/2/2017 00:25:05.000 9/1/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 9/3/2017 03:33:28.000 9/3/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 9/4/2017 18:35:45.000 9/8/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 9/10/2017 11:22:54.000 10/16/2018 23:59:59.000
Данные, которые я хочу
ACCOUNT_ID ACCOUNT_NUMBER DEVICE_TYPE FIRMWARE_VERSION LABEL DEVICE_START_DT DEVICE_END_DT
1000027 84957524 Peripheral-gateway ? Network Peripheral 8/13/2017 12:24:42.000 8/26/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 8/28/2017 06:33:50.000 8/28/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 8/30/2017 02:35:32.000 9/1/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 9/3/2017 03:33:28.000 9/8/2017 23:59:59.000
1000027 84957524 Peripheral-gateway ? Network Peripheral 9/10/2017 11:22:54.000 10/16/2018 23:59:59.000
Изменить:
Сценарий, которого я хочу достичь, выглядит следующим образом:
Приведенные примеры представляют собой все записи истории (тип SCD - 2), все активные записи будут иметь конец устройства dt как «9999-12-31 00:00:00», как некоторые даты в будущем. Мы не будем рассматривать активные записи. Идея состоит в том, чтобы устранить дубликаты накопления для просроченных записей, мы не будем рассматривать firmware_version для рассмотрения дублирования. За исключением firmware_version, device_start_dt и device_end_dt, все остальные значения такие же.
Мы будем рассматривать только записи с истекшим сроком действия и будем хранить минимум информации об истекших записях, поскольку объем данных велик.
Предположим, что у устройства есть 5 таких экземпляров, как показано ниже, с версией прошивки, датой начала устройства и датой окончания устройства соответственно, в идеальном случае дата начала устройства второго экземпляра = (дата окончания устройства экземпляра 1 + 1)
Экземпляр 1: V1.2.2.79 23.10.2012 26.11.2012 Экземпляр 2: V1.2.2.80 27.11.2012 28.11.2012 Экземпляр 3: V1.2.2.95 29.11.2012 07 23/23/2017 экземпляр 4: V1.2.2.98 24.07.2017 29.12.2018 экземпляр 5: V1.2.2.99 30/12/2018 09/02/2019
в приведенном выше примере мне нужен вывод, такой как последняя версия прошивки, дата начала устройства (самая ранняя или самая старая) и последняя дата, когда она истекла, как дата окончания устройства
вывод: V1.2.2.99 23.10.2012 02.09.2019