首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

DB2求两个结果集差别的SQL

2014-01-05 
DB2求两个结果集差异的SQL本帖最后由 pangjinyu 于 2013-08-20 15:12:47 编辑TB1:PROJK1K2K3K4项目1101517

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

热点排行