【发布时间】:2012-09-03 07:24:06
【问题描述】:
我有一个表 SAMPLE,其中包含唯一列(sal_id、gal_id)和金额、税款、日期和更多列。
示例表
actual_id, sal_id, gal_id, processed_flag, amount, tax date
1 101 201 Y 10 1 25-Aug-12
2 101 201 Y 20 3 27-Aug-12
3 101 201 N 15 2 29-Aug-12
现在我需要找出最大日期的未处理数据 (process_flag='N') 和继续数据 (process_flag='Y') 之间的区别。我需要计算 (sal_id + gal_id) 组合的金额和税金之间的差异。
所以查询返回应该是这样的:
在此示例中,由于对于 (101, 201),我们有 2 个已处理的行,并且 (actual_id 2 具有最大日期。因此需要找到 actual_id 3 和 actual_id 2 行之间的差异。
actual_id, sal_id, gal_id, total_amount, total_tax date
3 101 201 -5 (15-20) -1 (2-3) 29-Aug-12
我正在使用 Oracle 11g。请帮帮我。
【问题讨论】:
-
您将如何处理这笔金额?减去未处理的 - 处理,反之亦然?你是什么意思sal_id + gal_id?结合两个ID?还是参考表的值?
-
需要计算(未处理金额-已处理金额)和(未处理税-已处理税)。结合actual_id、sal_id、gal_id、日期形成SAMPLE表的唯一ID。