Расчетный столбец на основе условий в другой таблице

0

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

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

T2 - Financial Entries: [T2.Id] [T2.ContractId] [РАСЧЕТНАЯ КОЛОНКА, возвращающая "ok", если запись существует в T1, где ([T1.Id] = [T2.ContractId] и [T1.Conclusion] <= TODAY )]

Спасибо!

  • 0
    поделиться образцами данных обеих таблиц и ожидаемого результата
Теги:
select

2 ответа

2
Лучший ответ

Вы можете использовать коррелированный подзапрос и 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;
  • 0
    спасибо большое, все заработало отлично!
0

Вы можете продолжить простое объединение LEFT, используя ниже Query:

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

Если вы получите NULL в T1.id, тогда данные не будут существовать иначе "ОК".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню