Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Convertir Legacy SQL Outer JOIN *=, =* en ANSI

Je pense que le problème avec votre traduction est que vous utilisez des conditions sur les bonnes tables dans le where clause au lieu de dans le on clause.
Lorsque j'ai essayé de la traduire, voici la traduction que j'ai :

FROM counterparty cp
LEFT JOIN counterparty_alias ca1 ON cp.code = ca1.counterparty_code 
                                AND ca1.alias = 'Party1'
LEFT JOIN counterparty_alias ca2 ON cp.code *= ca2.counterparty_code 
                                AND ca2.alias = 'Party2'
LEFT JOIN party p ON cp.code = p.child_code
WHERE cp.category in ('CAT1','CAT2')

Cependant, il est difficile de savoir si j'ai raison puisque vous n'avez pas fourni d'exemples de données, de résultats souhaités ou même de requête complète.