DB2求两个结果集差异的SQL
本帖最后由 pangjinyu 于 2013-08-20 15:12:47 编辑 TB1:
PROJK1K2K3K4
项目110151720
项目210201720
项目310281720
TB2:
PROJK1K2K3K4
项目110151820
项目2 9201720
项目310281720
项目410501720
需得到结果:
PROJK1K2K3K4
项目1 -1
项目2 1
项目4-10-50-17-20
结果是对比计算得到两个结果集指标(K1、K2……指标有几十个)差异值。
因指标太多,用JOIN然后逐个指标减法感觉太不灵活,求高级轻巧一点的解决办法。 SQL?DB2?结果差异 DB2 SQL 求差异
[解决办法]
如果你的意思是k1----kn变化不确定列数,那么可以用存储过程,去syscat.columns中查询需要表的列信息,然后用来拼出sql文,但是其实也是用join,只不过避免了手动去写kn-kn这样
[解决办法]
select
PROJ,sum(K1),sum(K2),sum(K3),sum(K4)
from (
select PROJ,K1,K2,K3,K4 from TB1
union all
select PROJ, -K1, -K2, -K3, -K4 from TB2
)
group by PROJ
having sum(K1)<>0 or sum(K2)<>0 or sum(K3)<>0 or sum(K4)<>0
with ur