db是db2-400,下面我需要添加这个部分
“WHERE T01.OTTRNC IN ('001', 'CQU', 'RQU',
”
如果正在读取的ottrnc在此表代码中,它应该检查表'Codes
',而不是这个硬编码。
我还想添加此列 - t01.OTUSRN
如果它位于此表“CLOSERS
”中,那么我们也希望在此条件下过滤整个列。
SELECT ALL T01.OTCOM#, T02.IHPTTC,
T02.IHSLR#, T01.OTTRT,
T01.OTORD#, T02.IHINV#, T01.OTTRND, T02.IHORDT,
T02.IHDOCD, T02.IHORG$, T02.IHORD$,
T02.IHORG$-(T02.IHORD$) AS
INVAMT, T01.OTUSRN, T01.OTTRNC
FROM ASTDTA.OETRANOT T01
INNER JOIN
ASTDTA.OEINHDIH T02 ON T01.OTCOM# = T02.IHCOM#
AND
T01.OTORD# = T02.IHORD#
WHERE T01.OTTRNC IN ('001', 'CQU', 'RQU',
'CRF',
'RRF', 'CWA', 'RWA', 'OCS', 'CRF', 'RBC', 'LMY', 'BCS',
'BCQ')
答案 0 :(得分:2)
使用IN
和NOT EXISTS
时,子查询可以解决这两个问题。
WHERE
T01.OTTRNC IN (SELECT Code FROM Codes) AND
NOT EXISTS(SELECT * FROM Closers WHERE T01.OTUSRN = OTUSRN)