Jointure Requête SQL

Jointure Requête SQL - SQL/NoSQL - Programmation

Marsh Posté le 18-04-2005 à 15:49:02    

Bonjour,
 
voila j'ai une requête a faire qui devrait utiliser une jointure, sauf que je vois pas trop comment m'y prendre :(
 
j'ai une 1ère table où je sélectionne des produits selon l'idItem, le client, la Date, et l'id de l'Usine
ca donne ça :

Code :
  1. select MFDRQJ,MFFQT,MFTYPF,MFUPMJ,MFDCTO,MFTDAY,MFUSER from '+maBiblio2+'/F3460'
  2. WHERE MFLITM =idItem AND MFAN8 = idClient AND (MFDRQJ BETWEEN '+DateJul1+ ' AND '+DateJul2)
  3. AND MFMCU =idU


 
et j'ai une seconde table qui contient l'historique de ces produits si un produit en a 1.
(même structure de la table avec juste un compteur et un motif de changement)
 
j'aimerais que ma requete sélectionne les champs nécessaire et m'indique si il ya ou non un historique.
La jointure se fera sur idItem, le client, la Date, le statut et l'id de l'Usine.
Mais en faisant une jointure normale, je ne vais sélectionner que les produits présents ds l'historique :(
 
merci d'avance pour votre aide
 
Flam


Message édité par flam182 le 18-04-2005 à 16:08:41
Reply

Marsh Posté le 18-04-2005 à 15:49:02   

Reply

Marsh Posté le 18-04-2005 à 15:52:34    

<parenthèse>
  Tu t'y retrouve avec des noms de colonnes pareils ? :D
</parenthèse>

Reply

Marsh Posté le 18-04-2005 à 15:53:28    

non pas trop, mais je réutilise des tables j'ai pas vraiment le choix :(


Message édité par flam182 le 18-04-2005 à 16:09:23
Reply

Marsh Posté le 18-04-2005 à 17:12:15    

En simplifiant un peu le truc :
SELECT *  
FROM +maBiblio2+'/F3460' AS T1
LEFT OUTER JOIN LeNomDeTaSecondeTable AS T2
ON "liste ici toutes les conditions de jointures entre les deux tables ex : T1.COL1 = T2.COL1 AND T1.COL2 = T2.COL2"
WHERE "Recopie ici toutes tes clauses"
 
Voila ainsi tu auras NULL dans les colonnes de la seconde table qui ne sont pas renseignées note quand même que je t'ai mis du SQL standard, à adapter peut être en fonction de ton SGBR.
 

Reply

Marsh Posté le 18-04-2005 à 17:19:49    

FlorentG a écrit :

<parenthèse>
  Tu t'y retrouve avec des noms de colonnes pareils ? :D
</parenthèse>


:lol:
 
j'ai lu la requête, et tout à coup, je sais pas pourquoi, je me suis senti TRES fatigué :D

Reply

Marsh Posté le 18-04-2005 à 20:06:45    

oui dsl, j'aurai du simplifier, mais je suis moi aussi fatigué  de ces tables et nom a la con !!
 
Pour ta solution Tinfolley, il me semble avoir essayé avec un LEFT (peut être sans le OUTER ^^, je ne sais plus!) et il ne me retournais que les produits qui possédaient un historique
 
je test ca demain matin, en tt cas merci pour votre aide (et rapidité!) :)

Reply

Marsh Posté le 19-04-2005 à 11:01:04    

Code :
  1. SELECT * 
  2. FROM +maBiblio2+'/TableProduit' AS T1
  3. LEFT OUTER JOIN TableHisto AS T2
  4. ON "liste ici toutes les conditions de jointures entre les deux tables ex : T1.COL1 = T2.COL1 AND T1.COL2 = T2.COL2"
  5. WHERE "Recopie ici toutes tes clauses"


 
Voila, j'ai utilisé ta solution Tinfolley,
il me retourne bien les produits, et je regarde si le champ historique est a nul ou pas pour voir s'il ya un historique.
Mais il me retourne également toutes les lignes des historiques (pour un produit j'ai plusieurs ligne d'historiques).  
 
 

Reply

Marsh Posté le 20-04-2005 à 09:12:25    

En rajoutant un distinct ca fonctionne ;)
 
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed