Je travail sur une extraction de Contacts (OCPR) et de d'organismes Partenaires (OCRD).
une première requête très simple renvoie 5589 Lignes conformes à mon attente
La table OCRD a un table liée CRD1 contenant les différentes adresses des Partenaires, avec notamment une colonne caractérisant le type d'adresse, livraison (S) ou facturation (B). une liaison a été créée entre la colonne [Notes2] de Contacts (OCPR) vers CRD1 pour déterminer à quelle adresse un contact est rattaché. Ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT T0.[CntctCode], T0.[CardCode], T0.[Name] FROM OCPR T0 INNER JOIN OCRD T1 ON T0.[CardCode] = T1.[CardCode] WHERE T0.[Active] ='Y' AND T1.[CardType] <> 'S' ORDER BY T0.[CardCode], T0.[CntctCode]
On filtre seulement les adresses de livraisons sachant qu'il peut exister des adresses de livraison et de facturation avec une colonne T2.[Address] identique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT T0.[CntctCode], T0.[CardCode], T0.[Name] FROM OCPR T0 INNER JOIN OCRD T1 ON T0.[CardCode] = T1.[CardCode] INNER JOIN CRD1 T2 ON T0.[CardCode] = T2.[CardCode] AND T0.[Notes2] = T2.[Address] WHERE T0.[Active] ='Y' AND T1.[CardType] <> 'S' AND T2.[AdresType] ='S' ORDER BY T0.[CardCode], T0.[CntctCode]
J'obtiens 4449 lignes, sachant que la colonne [Notes2] de certains contacts est NULL ou renseignée par une valeur inexistante dans CRD1. Jusque là tout est normal, mais pour obtenir les 5589 lignes d'origine il me semblait qu'il suffisait de changer le type de jointure et ce code
me renvoie exactement le même nombre de lignes 4449.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT T0.[CntctCode], T0.[CardCode], T0.[Name] FROM OCPR T0 INNER JOIN OCRD T1 ON T0.[CardCode] = T1.[CardCode] LEFT JOIN CRD1 T2 ON T0.[CardCode] = T2.[CardCode] AND T0.[Notes2] = T2.[Address] WHERE T0.[Active] ='Y' AND T1.[CardType] <> 'S' AND T2.[AdresType] ='S' ORDER BY T0.[CardCode], T0.[CntctCode]
Une idée ? Merci d'avance
Partager