Passage de lignes en colonnes avec regroupement + rajout de colonnes

Zachs Messages postés 202 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 10 février 2009 - 13 janv. 2009 à 13:33
skyla Messages postés 60 Date d'inscription samedi 17 juin 2006 Statut Membre Dernière intervention 19 octobre 2009 - 13 janv. 2009 à 14:40
Hello, j'ai une requête qui me renvoie:
PdtID | PdtName | Price  | TarifID
10      | Poisson    | 15.50 | 0
10      | Poisson    | 20.50 | 1
10      | Poisson    | 12.50 | 2

Et j'aimerai que dans mon grid ça donne:
PdtID | PdtName | Tarif 0 | Tarif 1 | Tarif 2

10      | Poisson    | 15.50  | 20.50  | 12.50

Le nombre de tarif est indéfini.
Mais je n'y arrive pas est-ce que quelqu'un aurait une idée?

Merci d'avance

<hr size="2" width="100%" />Petit Jeu Allez-y c'est sympa!

2 réponses

skyla Messages postés 60 Date d'inscription samedi 17 juin 2006 Statut Membre Dernière intervention 19 octobre 2009
13 janv. 2009 à 14:28
salut,
je t'aurais bien conseillé TRANSFROM et PIVOT mais vu que le nombre de tarif est indéfinije crois pas que ca puisse servir,mais je te poste la methode,sait-on jamais,ca peut te mettre sut la voie


+=+=+=+=+=





TRANSFORM
Price
SELECT
PdtID
,
PdtName


FROM taTABLES
WHERE (TesConditions,s'il y'en a)
GROUP BY
PdtID
,
PdtName






PIVOT
"Tarif " &
TarifID

In ("Tarif 0","
Tarif 1
","
Tarif 2


");
+=+=+=+=+=
Tu auras exactement l'exemple que tu as cité,mais l'inconvenient c'est de savoir combien de colonnes tu doit avoir.Une autre approche sera de creer ta requette manuellement par concatenation avant de l'executer,seule la clause



PIVOT
"Tarif " &
TarifID

In ("Tarif 0","
Tarif 1
","
Tarif 2


"); changera.



Tu peux aussi tenter ta chance [www.sqlfr.com ici],tu trouveras plus d'aide je pense:










<sup>
[mailto:Sk@yL


S


]
</sup>



<sub>


</sub>
0
skyla Messages postés 60 Date d'inscription samedi 17 juin 2006 Statut Membre Dernière intervention 19 octobre 2009
13 janv. 2009 à 14:40
Attention, Petit oublie :




TRANSFORM 
SUM(CCCUR(Price))
,vu qu'on à un
GROUB BY





<sup>
[mailto:Sk@yL


S


]
</sup>



<sub>


</sub>
0