Regrouper plusieurs lignes en une seule - SQL/NoSQL - Programmation
Marsh Posté le 24-05-2004 à 16:57:58
Y a moyen, mais c'est très lourd comme manip, ca nécessite une requète par colonne.
Marsh Posté le 24-05-2004 à 17:02:41
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
Marsh Posté le 25-05-2004 à 12:41:22
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 ?
Marsh Posté le 25-05-2004 à 12:42:39
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 ? |
Marsh Posté le 25-05-2004 à 12:55:08
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)
Marsh Posté le 25-05-2004 à 15:18:15
Vu les solutions que vous lui donnez, j'espère pour lui qu'il a blindé ses procédures d'insertion dans sa DB...
Marsh Posté le 25-05-2004 à 16:37:17
gizmo a écrit : Vu les solutions que vous lui donnez, j'espère pour lui qu'il a blindé ses procédures d'insertion dans sa DB... |
Bon on est pas sur un forum de puristes ... maintenant
si tu as d'autres propositions à faire ... faut pas te
géner
Marsh Posté le 25-05-2004 à 17:13:28
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.
Marsh Posté le 25-05-2004 à 18:20:15
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...
Marsh Posté le 26-05-2004 à 09:55:23
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
Marsh Posté le 26-05-2004 à 09:56:23
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
Marsh Posté le 24-05-2004 à 16:26:00
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 !