SQL CASE с множественным соединением - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь запустить код выбора sql, как показано ниже. Я пытаюсь получить trans_date, который будет либо в asutrans, либо asuhistr. Но приведенный ниже код не дает мне никакого значения и не дает сбоев.

Как вы думаете, мы можем использовать такой оператор CASE? дает мне результат от asihistr. Как показано ниже -

SELECT
    v.voucher_no, t1.trans_Date FROM  aipdethis v
    JOIN asuhistr t1 ON t1.client = v.client and t1.voucher_no = v.voucher_no
WHERE
    v.voucher_no ='22094200'

1 Ответ

1 голос
/ 07 августа 2020

У вас не может быть оператора case, который проверяет voucher_no, потому что вы уже присоединяетесь к запросу соединения. Я думаю, это то, что вы ожидаете:

select 
    v.voucher_no,
    CASE
         WHEN t.trans_date is null then t1.trans_date
         ELSE t.trans_date
    END AS valuedate
    
   FROM  aipdethis v
   JOIN  asutrans t ON  t.client = v.client and t.voucher_no = v.voucher_no
   JOIN asuhistr t1 ON  t1.client = v.client  and t1.voucher_no = v.voucher_no
  where v.voucher_no ='22094200';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...