[SQL] aide pour la création d une requete

aide pour la création d une requete [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 24-03-2004 à 09:29:31    

Bonjour,
Je le dit tout de suite se n est pas moi qui ai créé les tables...
Voici mon probleme: J ai 2 tables, une table articles dans laquel il y a un id, libellé, ... mais aussi un rayon, une famille et une sous famille. Dans une 2 ème table (param), j ai les libellés de ses rayon, famille, sous famille et on peut savoir si il s agit d un rayon si dans la colonne famparam il y a les initiales 'RAY'
Voici un exemple:
 
Table articles:
id  libelle  Ray Fam SSFam
 1  Arti1     7   0   0
 2  Arti2     7   0   2
 3  Arti3     8   2   1
 
Table param:
famparam   codparam  libelle
  RAY        7        Rayon7
  RAY        8        Rayon8
  FAM        7 0      Famille7_0
  FAM        8 2      Famille8_2
  SSF        7 0 0    SSFam7_0_0
  SSF        7 0 2    SSFam7_0_2
  SSF        8 2 1    SSFam8_2_1
 
Et le résltat que j aimereais:
id libelle Ray LibRay  Fam LibFam       SSFam LibSSF
 1 Arti1    7  Rayon7   0  Famille7_0    0    SSFAM7_0_0
 2 Arti2    7  Rayon7   0  Famille7_0    2    SSFAM7_0_2
 3 Arti3    8  Rayon8   2  Famille8_2    1    SSFAM8_2_1
 
Voila j espere que c est compréhensible...
D avance merci!!!  
Ben


Message édité par the big ben le 24-03-2004 à 09:37:56
Reply

Marsh Posté le 24-03-2004 à 09:29:31   

Reply

Marsh Posté le 24-03-2004 à 10:54:01    

et la question c'est ?

Reply

Marsh Posté le 24-03-2004 à 11:06:05    

Et bien quel est la reqete sql qui me permettrais d avoir mon résultat...
 
Ca doit etre un truc genre:
 SELECT A.*, P.libelle FROM articles A
 SELECT libelle FROM param P WHERE famparam = 'RAY' AND codparam = A.id
Mais je ne sais pas comment faire le lien entre les 2 select pour n en former plus qu un...


Message édité par the big ben le 24-03-2004 à 11:09:17
Reply

Marsh Posté le 24-03-2004 à 11:15:48    

sans regarder les tables.  
 
SELECT A.*, P.libelle FROM articles A, param P
WHERE famparam = 'RAY'
AND codparam = A.id

Reply

Marsh Posté le 24-03-2004 à 11:48:02    

oui oui mais ca ne me suffit pas...  
car il me faut aussi la famille et la sous famille or je ne peu pas faire
... WHERE famparam = 'RAY' AND famparam = 'FAM' ...
 
cf l'exemple...

Reply

Marsh Posté le 24-03-2004 à 13:08:25    

ben non. je comprends pas bien ton problème, malgré l'exemple...
 
WHERE famparam = 'RAY' AND famparam = 'FAM' C'est évident que ça ne marchera pas. peut-être qu'un UNION pourrait t'aider pour lier les 2 select ?

Reply

Marsh Posté le 24-03-2004 à 13:17:06    

C'est juste une jointure sur Ray, Fam et SSFam
 
Mais je vois pas comment sont stockées ces infos dans "param" ? Le "7 0 0" de la 5ème ligne, c'est une seule colonne ou 3 colonnes différentes :??:

Reply

Marsh Posté le 24-03-2004 à 13:17:10    

Il faut que tu mettes ta table qui contient les libellés autant de fois que de libellés que tu veux récupérer
 
Ta requete si j'ai bien compris ta codification dans la table param donne un truc du genre  
 
select A.id, A.libelle, a.Ray,  
b.libelle, a.Fam, c.libelle, a.SSFam, d.libelle
from article a, Param b, param c, param d
where  
b.famparam = 'RAY'
AND b.cod_param= a.Ray =  and
AND c.famparam = 'FAM'
AND c.cod_param = (a.RAY || ' ' || a.FAM)
AND d.famparam = 'SSF'
AND d.cod_param = (a.RAY || ' ' || a.FAM || ' ' || a.SSFam)


Message édité par dlaumor le 24-03-2004 à 13:31:29
Reply

Sujets relatifs:

Leave a Replay

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