Внешнее Соединение с Куда возвращаются Нули - PullRequest
1 голос
/ 16 июля 2010

Привет, у меня есть 2 таблицы. Я хочу перечислить

  1. все записи в таблице1, которые присутствуют в table2
  2. все записи в таблице2, которых нет в таблице1, с условием где

Пустые строки будут возвращены таблицей1 во втором состоянии, но я не могу заставить запрос работать правильно. Возвращаются только нулевые строки

SELECT 
    A.CLMSRNO,A.CLMPLANO,A.GENCURRCODE,A.CLMNETLOSSAMT,
    A.CLMLOSSAMT,A.CLMCLAIMPRCLLOSSSHARE
FROM 
    PAKRE.CLMCLMENTRY A 
RIGHT OUTER JOIN (
    SELECT 
        B.CLMSRNO,B.UWADVICETYPE,B.UWADVICENO,B.UWADVPREMCURRCODE,
        B.GENSUBBUSICLASS,B.UWADVICENET,B.UWADVICEKIND,B.UWADVYEAR,
        B.UWADVQTR,B.ISMANUAL,B.UWCLMNOREFNO 
    FROM
        PAKRE.UWADVICE B 
    WHERE
        B.ISMANUAL=1
) r
ON a.CLMSRNO=r.CLMSRNO

ORDER BY 
    A.CLMSRNO DESC;

Ответы [ 3 ]

0 голосов
/ 16 июля 2010

Я не понимаю вашу первую попытку, но вот в основном то, что вам нужно, я думаю:

SELECT *
FROM TABLE1
INNER JOIN TABLE2
    ON joincondition

UNION ALL

SELECT *
FROM TABLE2
LEFT JOIN TABLE1
    ON joincondition
    AND TABLE1.wherecondition
WHERE TABLE1.somejoincolumn IS NULL
0 голосов
/ 16 июля 2010

Я думаю, что вы можете удалить подзапрос и поместить его столбцы в основной запрос, например

SELECT A.CLMSRNO, A.CLMPLANO, A.GENCURRCODE, A.CLMNETLOSSAMT, 
       A.CLMLOSSAMT, A.CLMCLAIMPRCLLOSSSHARE,  
       B.CLMSRNO, B.UWADVICETYPE, B.UWADVICENO, B.UWADVPREMCURRCODE, 
       B.GENSUBBUSICLASS, B.UWADVICENET, B.UWADVICEKIND, B.UWADVYEAR, 
       B.UWADVQTR, B.ISMANUAL, B.UWCLMNOREFNO     
  FROM PAKRE.CLMCLMENTRY A
       RIGHT OUTER JOIN PAKRE.UWADVICE B 
          ON A.CLMSRNO = B.CLMSRNO
 WHERE B.ISMANUAL = 1
 ORDER 
    BY A.CLMSRNO DESC;
0 голосов
/ 16 июля 2010

Какую ОС вы используете?

Псевдонимы таблиц чувствительны к регистру на некоторых платформах , поэтому ваше условие соединения ON a.CLMSRNO=r.CLMSRNO не выполняется.

Попробуйте с A.CLMSRNO=r.CLMSRNO и посмотрите, работает ли это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...