Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2435 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Qu'est ce qui cloche dans ma requête SQL?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Qu'est ce qui cloche dans ma requête SQL?

n°1169180
rufo
Pas me confondre avec Lycos!
Posté le 03-08-2005 à 17:49:16  profilanswer
 

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 :
  1. 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 :jap:

mood
Publicité
Posté le 03-08-2005 à 17:49:16  profilanswer
 

n°1169638
casimimir
Posté le 04-08-2005 à 08:59:53  profilanswer
 

normal, un meme champ ne peut avoir en meme temps 2 valeurs a moins que dans ce cas précis il ne soit un truc du genre 04.0519Cblabla04.0520D
un truc qui me vient en tete la (je passe la jointure)
 

Code :
  1. select distinct d.DocumentID from Documents d
  2. where (d.DocumentRef LIKE "%04.0520D%" OR d.DocumentRef LIKE "%04.0519C%"
  3.  OR d.DocumentExternalRef LIKE "%04.0520D%" OR d.DocumentExternalRef LIKE "%04.0519C%" )
  4. group by DocumentID
  5. having (count(distinct d.DocumentRef)=2) or (count(distinct d.DocumentExternalRef)=2);

n°1169653
rufo
Pas me confondre avec Lycos!
Posté le 04-08-2005 à 09:31:54  profilanswer
 

hum, effectivement, j'avais pas pensé à ça (le coup qu'un même champ 2 peut avoir 2 valeurs différentes). Je raisonnais par rapport à la table qui contenant les documents livrés lors d'une livraison ;or ma requête travaille sur les documents eux-mêmes :(
 
Merci de ton aide en tout cas.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Qu'est ce qui cloche dans ma requête SQL?

 

Sujets relatifs
manipulation de chaine en requete SQL.[Résolu] Ecriture correcte de requête
[ASP.NET] les apostrophes deviennet dans ? dans SQLTest de présence de paramètre de type '&1' en SQL
MySQL : requete suivant le mois en coursrequete access c#
Chuis en train de patater le serveur de prod SQL ServerRAND() SQL, il compte ce qui est sortie ?
SQL Server - Connaitre noms dernieres tables modifiees 
Plus de sujets relatifs à : Qu'est ce qui cloche dans ma requête SQL?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR