Нужен SQL с логикой цепочки дат

Я хочу написать SQL (не процедуру, а SQL) для вывода, как в таблице t2 из таблицы t1. Это необходимо для проверки данных между таблицами t1 и t2. Я хочу извлечь данные из таблицы t1 на основе этой логики и хочу сравнить их с таблицей t2

У меня есть две таблицы t1 и t2. T1 имеет такие данные:

Item Id   Date           Item code
A         01/01/2017     10
A         02/01/2017     10
A         03/01/2017     10
...
A         15/02/2017     11
A         23/02/2017     11
...
A         25/06/2017     12

Данные в таблицах 2 идут таким образом, что поддерживается цепочка дат:

Item ID   Start Date  End date   Item Code
A         20170101    20170214   10
A         20170215    20170624   11
A         20170625    99991231   12

Используемая база данных - Oracle Exadata.

1 ответ

Я предполагаю, что StartDate и EndDate являются минимальной и максимальной датой, связанной с item_code в вашей таблице. В этом случае - это один из способов получить t2 от t1:

select
    (
        select min(t1.item_date)
        from t1
        where t1.item_code = sel1.item_code
    ) min_date,
    (
        select max(t1.item_date)
        from t1
        where t1.item_code = sel1.item_code
    ) max_date,
    sel1.item_code
from (
    select distinct item_code
    from t1
) sel1
Другие вопросы по тегам