我的第一篇文章是这么做的,一直在做一些基本的SQL,但由于承担更多的责任而必须学习更多。从两个SQL查询中添加值以创建第三个值
查询1给出了我们财务系统中所有代码的年迄今价值,这些代码从客观的AAAAA到ZZZZZ和主观的0000到9999,并不是所有的代码都在使用中,目前这是在28周15年。
下面的查询2给出了本周输入的日志(在三个日志表中)的总价值,他们有一个名为jnl_processed的字段,可以用行AND JNL_PROCESSED =' N',则根据相关的客观和主观代码计算未处理期刊的价值,与表1相比,该表上的代码少很多。
我期待着年底,有价值的查询将是查看本周28中的所有Year_To_Date(YTD)的值添加到期刊价值29周以创建新列总和。
我在下面分别有两个查询,但努力合并这两个,任何人都可以协助?
查询1
SELECT OBJ_FULL,SUBJ_FULL,ACT_YTD_TY
FROM DB2ADM2.TFINCATP
WHERE OBJ_FULL = 'TBBBB'
AND ACT_YTD_TY <> 0.00
产生以下:
OBJ_FULL SUBJ_FULL ACT_YTD_TY
TBBBB 3420 12,000.00
TBBBB 3473 18,453.02
TBBBB 3524 2,480.40
TBBBB 3704 585.00
TBBBB 7704 -4,142.71
TBBBB 8199 -25.00
TBBBB 9400 -168,363.10
TBBBB 9403 -457.56
TBBBB 9404 -9,666.73
TBBBB 9405 -13,098.05
查询2
SELECT JNL_OBJ, JNL_SUBJ, SUM(JNL_VALUE)
FROM DB2ADM2.JNLFILE
WHERE JNL_PROCESSED = 'N' AND JNL_YEAR = '15'
GROUP BY JNL_OBJ, JNL_SUBJ
UNION
SELECT JNL_OBJ, JNL_SUBJ, SUM(JNL_VALUE)
FROM DB2ADM2.JNLRFILE
WHERE JNL_PROCESSED = 'N' AND JNL_YEAR = '15'
GROUP BY JNL_OBJ, JNL_SUBJ
UNION
SELECT JNL_OBJ, JNL_SUBJ, SUM(JNL_VALUE)
FROM DB2ADM2.JNLYFILE
WHERE JNL_PROCESSED = 'N' AND JNL_YEAR = '15'
GROUP BY JNL_OBJ, JNL_SUBJ
产生以下:
JNL_OBJ JNL_SUBJ VALUE
TBBBB 9404 -547.78
TBBBB 9405 -24.39
TBBCA 9404 547.78
TBBCC 9400 24.39
理想的结果应该返回(使用四个代码为例)
OBJ SUBJ YTD VALUE TOTAL
TBBBB 3420 12,000.00 0.00 12,000.00
TBBBB 9403 -457.56 0.00 -457.56
TBBBB 9404 -9,666.73 -547.78 -10,214.51
TBBBB 9405 -13,098.05 -24.39 -13,122.44
不胜感激任何帮助,我不知道是否有合并三个日志表更简单的方法,而不是使用UNION,列除了每个表的JA,JC和JD的JNL_SOURCE之外都是相同的。
这是21年10月15
15:30返回当前数据OBJ SUBJ YTD VALUE TOTAL
TBBBB 9404 -9666.73 -547.78 -10214.51
TBBBB 9405 -13098.05 -24.39 -13122.44
有与在YTD列中的值,但该值列几个其它代码是零,我需要包括所有码。
最终输出将会是什么样子? – agileMike
是否允许TBBBB以外的OBJ值? – toonice
是的,我会扩展它以覆盖可以从AAAAA到ZZZZZ的一系列代码 –