Внутри JOIN (BB_VENDASDOCUMENTOS VD) мне нужно выбрать, будет ли VD.ENTRADASAIDA 'S' или 'E', что мне действительно нужно, если есть хотя бы один BB_VENDASDOCUMENTOS, где ENTRADASAIDA = 'S', используйте 'S', иначе 'N'
Я пытался сделать СЛУЧАЙ, КОГДА СЧИТАЯ ЧИСЛО VD.ENTRADASAIDA = 'S', если больше 0, будет использоваться 'S', иначе 'N', но я получаю ошибку это и агрегат не могут появляться в предложении ON ...
SELECT
CASE WHEN CENTROCUSTO.DESCRICAO IS NOT NULL THEN CENTROCUSTO.DESCRICAO + '|' ELSE '' END AS [text()]
FROM BB_PNRACCOUNTINGS ACC1
JOIN BB_VENDASDOCUMENTOS VD
ON ( VD.ACCOUNTING = ACC1.HANDLE
AND VD.ENTRADASAIDA = CASE WHEN count(case when VD.ENTRADASAIDA = 'S' THEN 1 ELSE NULL END ) > 0 THEN 'S' ELSE 'E' END
AND VD.PESSOA = ACC1.BB_CLIENTE
AND ( ( VD.CANCELADO = 'N' ) OR (VD.CANCELADO IS NULL) ) )
LEFT JOIN BB_CLIENTECC CENTROCUSTO
ON (CENTROCUSTO.Handle = VD.CENTRODECUSTO)
WHERE CENTROCUSTO.DESCRICAO IS NOT NULL