Я должен создать вычисляемый столбец в запросе (T2), основанный на соответствующей записи в другой таблице (T1), которая относится к определенному условию, например:
T1 - Контракты: [T1.Id] [T1.Conclusion]
T2 - Financial Entries: [T2.Id] [T2.ContractId] [РАСЧЕТНАЯ КОЛОНКА, возвращающая "ok", если запись существует в T1, где ([T1.Id] = [T2.ContractId] и [T1.Conclusion] <= TODAY )]
Спасибо!
Вы можете использовать коррелированный подзапрос и 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;
Вы можете продолжить простое объединение LEFT, используя ниже Query:
SELECT DISTINCT T2.*, T1.id
FROM T2
LEFT JOIN T1 ON T1.Id = T2.ContractId AND T1.Conclusion <= TODAY
Если вы получите NULL в T1.id, тогда данные не будут существовать иначе "ОК".