SQL Comment CAS d'utilisation avec un n'EXISTE PAS de déclaration

J'ai un complexe de requête dans SQL où je suis en tirant une charge de l'information provenant de diverses tables et de faire plusieurs jointures. Je veux tirer une colonne qui vérifie si le particulier tradeId est contenu dans 2 tables différentes. Je suis coincé avec la façon de le faire correctement.

Le code ci-dessous me donne tous les TradeIds du Commerce de table qui ne sont PAS dans la médecine chinoise traditionnelle (qui est juste une combinaison de 2 tables). Cependant, je voudrais que TOUS les métiers du Commerce de la table, puis une colonne pour indiquer si elle est trouvée dans la MCT ou pas.

Je sais que ce serait fait avec un CAS LORS de la requête, mais je suis confus comment le structurer afin qu'elle s'insère dans le CAS où.

With subCA As
(Select distinct OTPTradeId, ConfoAuditSenderRef from ConfirmationAudit where ConfoAuditSenderRef like 'HBEUM%'),
TCM As
(Select distinct OTPTradeID from subCA union ALL select TradeId from subCA inner join ConfirmationSent on (OTPTradeId = ConfoId 
AND ConfoAuditSenderRef like 'HBEUMN%'))
select TradeId from Trade where NOT EXISTS (Select OtpTradeId from TCM where OtpTradeId = TradeId) 
and TradeDate = '17 jun 2013'

Heres une tentative de ma part pour qu'il tienne dans un CAS, LORS de la déclaration, mais je reçois une erreur car il n'EXISTE PAS n'est pas autorisée sans un OÙ je crois. Mais ce que je suis après est quelque chose comme cela. Si j'utilise PAS EN elle devient très lente comme 5 minutes de plus et c'est une partie d'un plus grand requête et je ne veux pas prendre très longtemps - si possible!

With subCA As
(Select distinct OTPTradeId, ConfoAuditSenderRef from ConfirmationAudit where ConfoAuditSenderRef like 'HBEUM%'),
TCM As
(Select distinct OTPTradeID from subCA union ALL select TradeId from subCA inner join ConfirmationSent on (OTPTradeId = ConfoId 
AND ConfoAuditSenderRef like 'HBEUMN%'))
select TradeId,
CASE WHEN
    (TradeId NOT EXISTS (Select OtpTradeId from TCM where OtpTradeId = TradeId) Then 'Y' Else 'N' End As 'TCM' 
from Trade
WHERE TradeDate = '17 jun 2013'

OriginalL'auteur user2599240 | 2013-07-19