Расчетный столбец на основе условий в другой таблице - PullRequest
0 голосов
/ 14 сентября 2018

Мне нужно создать вычисляемый столбец в запросе (T2) на основе соответствующей записи в другой таблице (T1), которая соответствует определенному условию, например:

T1 - Контракты: [T1.Id] [T1.Conclusion]

T2 - Финансовые записи: [T2.Id] [T2.ContractId] [ РАСЧЕТНАЯ КОЛОННА возврат«хорошо», если в T1 существует запись, где ([T1.Id] = [T2.ContractId] и [T1.Conclusion] <= СЕГОДНЯ)] </p>

Спасибо!

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Вы можете перейти к простому левому соединению, используя следующий запрос:

SELECT DISTINCT T2.*, T1.id
FROM T2
LEFT JOIN T1 ON T1.Id = T2.ContractId AND T1.Conclusion <= TODAY

Если вы получите NULL в T1.id, то данных не существует, иначе «ОК».

0 голосов
/ 14 сентября 2018

Вы можете использовать коррелированный подзапрос и EXISTS в выражении CASE.

SELECT t2.id,
       t2.contractid,
       CASE
         WHEN EXISTS (SELECT *
                             FROM t1
                             WHERE t1.id = t2.contractid
                                   AND t1.conclusion <= curdate()) THEN
           'ok'
       END
       FROM t2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...