在PLSQL中,我有一个包含三列的表A:product,amount,date。
表A:
Product- Amount- Date
1S 100 1/1/2005
1S 100 1/2/2005
1S 100 1/7/2005
1S 120 1/10/2005
正如我们可以看到的那样,对于所有3个日期,金额100是相同的。并且,还插入了3条记录。但是如果当前行的数量与前一行相同,而不是3条记录,那么我们需要更新DATE,不应插入新记录。
如果当前行包含新金额120且与上一行不同,则应插入记录。请参阅以下预期的输出
输出:
Product -Amount - Date
1S 100 1/7/2005
1S 120 1/10/2005
答案 0 :(得分:1)
您可以按照以下方式执行此操作。这将给出按产品和金额分组的最大日期。这将是一个简单的查询而不是合并
insert into tablea
(select product,amount,max(date) from tableb
group by product,amount).