Нужно изменить жесткий код и фильтр в этом запросе

БД db2-400 в следующем мне нужно, чтобы добавить эту часть "WHERE T01.OTTRNC IN ('001', 'CQU', 'RQU',"

это должно сверяться с таблицейCodes'если чтение ottrnc находится в этой таблице, то коды, а не это жесткое кодирование. Я также хочу добавить этот столбец - 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')    

1 ответ

Решение

Обе проблемы могут быть решены с помощью подзапросов, один раз используя IN и однажды NOT EXISTS,

WHERE
   T01.OTTRNC IN (SELECT Code FROM Codes) AND
   NOT EXISTS(SELECT * FROM Closers WHERE T01.OTUSRN = OTUSRN)
Другие вопросы по тегам