Мне нужно заменить предложение where в подзапросе предложением, которое зависит от значения главного запроса.
Я должен заменить полное условие, а не только правую часть условия, поэтому я создал запрос, подобный приведенному ниже:
SELECT p.par_des AS description,
COALESCE(
(SELECT SUM(ope_tot) FROM operator WHERE
(CASE WHEN p.par_cod = 'TEN01' THEN ope_cau = 'TEN01' OR ope_cau LIKE 'BAN__' ELSE ope_cau = p.par_cod END)
AND (ope_tim BETWEEN '00:00:00' AND '23:59:59' ) )
,0) AS value
FROM parameters p WHERE par_cod LIKE 'TEN__';
Как вы можете видеть в жирной части запроса, я заменяю условие предложения where на основе значения поля в главном запросе, и я должен указать также оператор or, если условие выполнено.
Этот запрос хорошо работает на PostgreSQL и MySQL, но он не работает в MSSQL. Как переписать запрос и позволить ему работать также в Microsoft SQL?
Лучше всего, если один и тот же запрос может выполняться без изменений на всех этих трех серверах баз данных: MySQL, PostgreSQL, MSSQL.