需要在此查询中更改硬代码和过滤器

need to change hard code and filter in this query

下面的db是db2-400我需要加上这部分 “WHERE T01.OTTRNC IN ('001', 'CQU', 'RQU',

如果正在读取的 ottrnc 是在这个 table 代码中,而不是这个硬编码中,它应该检查 table 'Codes'。 我还想添加此列 - t01.OTUSRN 如果它位于此 table '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')    

这两个问题都可以用子查询来解决,一次使用 IN 一次 NOT EXISTS.

WHERE
   T01.OTTRNC IN (SELECT Code FROM Codes) AND
   NOT EXISTS(SELECT * FROM Closers WHERE T01.OTUSRN = OTUSRN)