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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Regrouper plusieurs lignes en une seule

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Regrouper plusieurs lignes en une seule

n°736413
thomaspa
Posté le 24-05-2004 à 16:26:00  profilanswer
 

Bonjour,
Voici le probleme que j'ai sur une base SQL :
 
table products
products_id, products_model
1 T-shirt bleu
2 T-shirt rouge
 
table products_stock
products_id, products_size, products_stock_quantity
2    1   230
2    2   100  
2    3   54  
2    4   110
 
J'ai une table "products" avec une liste de produits, et j'ai une table "products_stock" avec le stock pour chaque taille (taille 1,2,3,4)
 
J'aimerais regrouper les résultats de cette facon :
products_id, products_model, taille S, taille M, taille L, taille XL
2            t-shirt rouge    230      100       54        110
 
c'est à dire que je veux tout regrouper en une seule ligne...
 
Après plusieurs heures de recherches, je baisse les bras.
Merci d'avance de votre aide !

mood
Publicité
Posté le 24-05-2004 à 16:26:00  profilanswer
 

n°736477
gizmo
Posté le 24-05-2004 à 16:57:58  profilanswer
 

Y a moyen, mais c'est très lourd comme manip, ca nécessite une requète par colonne.

n°736487
vttman2
Je suis Open ...
Posté le 24-05-2004 à 17:02:41  profilanswer
 

essaie ça ...
 
select p.products_id, p.products_model ,
s1.products_stock_quantity ,
s2.products_stock_quantity ,
s3.products_stock_quantity ,
s4.products_stock_quantity  
from products p  
inner join products_stock s1
 on p.products_id = s1.products_id and
    s1.products_size =1    
inner join products_stock s2
 on p.products_id = s2.products_id and
    s2.products_size =2    
inner join products_stock s3
 on p.products_id = s3.products_id and
    s3.products_size =3    
inner join products_stock s4
 on p.products_id = s4.products_id and
    s4.products_size =4    

n°737335
thomaspa
Posté le 25-05-2004 à 10:48:15  profilanswer
 

Super merci !!!! Ca fonctionne très bien !

n°737528
thomaspa
Posté le 25-05-2004 à 12:41:22  profilanswer
 

J'ai encore un petit probleme. Le problème est que lorsque un produit n'est pas disponible dans une taille (aucun ligne pour la taille dans la table products_stock), alors le résultat de la requete donne rien un résultat vide... Y'a t'il un moyen pour contourner ca ?

n°737530
thomaspa
Posté le 25-05-2004 à 12:42:39  profilanswer
 

thomasPa a écrit :

J'ai encore un petit probleme. Le problème est que lorsque un produit n'est pas disponible dans une taille (aucun ligne pour la taille dans la table products_stock), alors le résultat de la requete donne rien (un résultat vide)... Y'a t'il un moyen pour contourner ca ?
 
Vu que 50% de mes produits ne disposent pas d'une taille (livres, cd, ...), la requete pour ces produits ne renverrait aucun résultat et c'est très problématique.
 
Merci d'avance

n°737550
Vinx
Posté le 25-05-2004 à 12:55:08  profilanswer
 

Tu peux utiliser une fonction du genre NVL(quantité,0). La fonction est dispo avec Oracle. Je ne sais pas si elle est dispo avec tous les SGBD (Il doit exister des équivalents)

n°737828
vttman2
Je suis Open ...
Posté le 25-05-2004 à 14:54:19  profilanswer
 

Tu remplaces les  
"inner join" par des
"left join"
 
;-)

n°737829
vttman2
Je suis Open ...
Posté le 25-05-2004 à 14:55:15  profilanswer
 

Vinx +1
 
C quoi au fait ton SGBD ?

n°737871
gizmo
Posté le 25-05-2004 à 15:18:15  profilanswer
 

[:totoz] Vu les solutions que vous lui donnez, j'espère pour lui qu'il a blindé ses procédures d'insertion dans sa DB...

mood
Publicité
Posté le 25-05-2004 à 15:18:15  profilanswer
 

n°737971
thomaspa
Posté le 25-05-2004 à 16:02:16  profilanswer
 

merci beaucoup, ca fonctionne :)
Que veux tu dire gizmo ?

n°738070
vttman2
Je suis Open ...
Posté le 25-05-2004 à 16:37:17  profilanswer
 

gizmo a écrit :

[:totoz] Vu les solutions que vous lui donnez, j'espère pour lui qu'il a blindé ses procédures d'insertion dans sa DB...


 
:sweat:  
 
Bon on est pas sur un forum de puristes ... maintenant
si tu as d'autres propositions à faire ... faut pas te
géner  ;)  
 

n°738109
gizmo
Posté le 25-05-2004 à 17:13:28  profilanswer
 

Je veux dire qu'avec les solutions qu'ils te propose, si jamais tu as un jour qq'un qui arrive à insérer une seconde ligne avec un product_id et un product_size déjà existant, tout ton système s'écroule.

n°738241
thomaspa
Posté le 25-05-2004 à 18:20:15  profilanswer
 

oui c'est vrai que si un product_size (donc une taille) est ajoutée, le stock pour cette taille n'apparaitra pas dans mon résultat.. Ca m'ennuis mais j'ai ajouté dans la table une liste exaustive des tailles...

n°739084
vttman2
Je suis Open ...
Posté le 26-05-2004 à 09:55:23  profilanswer
 

gizmo a écrit :

Je veux dire qu'avec les solutions qu'ils te propose, si jamais tu as un jour qq'un qui arrive à insérer une seconde ligne avec un product_id et un product_size déjà existant, tout ton système s'écroule.


 
+1

n°739089
vttman2
Je suis Open ...
Posté le 26-05-2004 à 09:56:23  profilanswer
 

thomaspa a écrit :

oui c'est vrai que si un product_size (donc une taille) est ajoutée, le stock pour cette taille n'apparaitra pas dans mon résultat.. Ca m'ennuis mais j'ai ajouté dans la table une liste exaustive des tailles...


 
Donc pas de blème  ;)

n°739097
thomaspa
Posté le 26-05-2004 à 09:58:14  profilanswer
 

oui :)


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

  Regrouper plusieurs lignes en une seule

 

Sujets relatifs
comment avoir qu'une seule barre de defilement verticale??[HTML] agrandir un champ texte multi-lignes sans barre de défilement
plusieurs vars pour asp :([ Jsp/Tomcat ] Forcer le charset dans plusieurs frames ...
[ImageMagick] Plusieurs sessions sur le même serveurTUTORIEL COMPLET : plusieurs CSS au choix...
Boucler sur les lignes d'un fichier texte (shell UNIX)VBA - Sauver une seule feuille, au format TXT, sans modif du classeur
Delete de lignes redondantesPHP - Permuter lignes tableau
Plus de sujets relatifs à : Regrouper plusieurs lignes en une seule


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