我想编写一个SQL(不是一个过程而是SQL)来生成输出,如表t1中的表t2所示。这需要在表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。
答案 0 :(得分:0)
我认为StartDate和EndDate是与表中的item_code关联的最小和最大日期。在这种情况下 - 这是从t1获得t2的一种方法:
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