Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Converti legacy SQL esterno JOIN *=, =* in ANSI

Penso che il problema con la tua traduzione sia che stai usando le condizioni nelle tabelle giuste nel where clausola invece che in on clausola.
Quando ho provato a tradurlo, questa è la traduzione che ho:

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')

Tuttavia, è difficile sapere se ho ragione poiché non hai fornito dati di esempio, risultati desiderati o persino una query completa.