Au niveau relation entre les données, on a :
- une livraison de matériel possède un champ texte (MatDeliveryMaterialList) contenant d'éventuels matos livrés
- à une livraison peut être associés des documents
- un document possède une réf interne (DocumentRef) et éventuellement une réf externe (ocumentExternalRef)
- la table MatDeliveriesDocuments fait la relation entre les livraisons et les documents
Voici ma requête SQL :
Code :
- SELECT DISTINCT md.MatDeliveryID FROM MatDeliveries md LEFT JOIN MatDeliveriesDocuments mdd ON (md.MatDeliveryID = mdd.MatDeliveryID) LEFT JOIN Documents d ON (mdd.DocumentID = d.DocumentID) WHERE ((md.MatDeliveryMaterialList LIKE "%04.0520D%" AND md.MatDeliveryMaterialList LIKE "%04.0519C%" ) OR (d.DocumentRef LIKE "%04.0520D%" AND d.DocumentRef LIKE "%04.0519C%" ) OR (d.DocumentExternalRef LIKE "%04.0520D%" AND d.DocumentExternalRef LIKE "%04.0519C%" ))
|
Dans ma table, j'ai 2 livraisons (pour tester), dont une à qui lui sont associés 2 documents ayant comme ref externe 04.0519C et 04.0520D. Pourtant, la requête ne trouve aucune livraison Par contre, si je remplace les AND par des OR, je trouve bien 2 fois la même livraison Sauf que moi, je veux pouvoir trouver les livraisons qui possèdent les docs 04.0519C ET 04.0520D et non les docs 04.0519C OU 04.0520D... Vous voyez mon pb? Merci beaucoup par avance