Utiliser le resultat d'une requete en tant que colonne

deathh Messages postés 3 Date d'inscription jeudi 2 mars 2006 Statut Membre Dernière intervention 25 février 2010 - 25 févr. 2010 à 15:30
SQLPande Messages postés 5 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 9 février 2011 - 17 mars 2010 à 21:45
Bonjour,
Je suis débutant en SQL et j'ai beaucoup cherché mais je ne dois être passé à coté des mot clé, j'imagine...

Voila mon souci: j'ai une table Produit
| Id_prod | Ref |
-----------------
| 0 | aaa |
| 1 | bbb |

et une table Commande
| Id_com | Id_prod | Quantite
-----------------------------
| 0 | 0 | 12
| 0 | 1 | 34
| 1 | 0 | 56
| 1 | 1 | 78

Je cherche a afficher, pour un bilan par exemple, la totalité des produits commandé pour chaque commande sur une ligne, ce qui donnerai:
| Id_com | aaa | bbb |...
----------------------
| 0 | 12 | 34 |
| 1 | 56 | 78 |

D'après mes recherches, je suis sensé faire des "requête dynamique" ?
Si oui je n'ai pas eu les bonnes sources car je n'ai rien trouvé qui correspondait a mes besoins...
Si vous avez une piste, je suis preneur :)
Merci

1 réponse

SQLPande Messages postés 5 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 9 février 2011
17 mars 2010 à 21:45
Salut,

Tu utilises quelle version de SQL server?

Si tu utilises une version superieure a 2005, tu dois la fonction PIVOT pour faire ce que tu veux faire.
http://technet.microsoft.com/en-us/library/ms177410(SQL.90).aspx

Sinon voici un exemple de requete que tu dois rendre dynamique en utilisant la fonction PIVOT
select id_com,[aaaa],[bbbb] 
from 
(
select CMD.Id_Com, Quantite, ref 
from Produit PDT
inner join Commande	CMD ON CMD.Id_Prod=PDT.id_Prod
) as SourceTable
pivot
(
sum(Quantite)
for ref in ([aaaa],[bbbb] )
)as pivotTable


Dispo si tu as besoin d'aide.
0