OVH Cloud OVH Cloud

Transposition encore

5 réponses
Avatar
Stef
Bonjour, je reviens encore sur le sujet mais, j'ai une table qui ressemble
à ça

MaDate Variable Valeur
2004-01-01 00:00:00.000 Var1 1.0
2004-01-01 00:00:00.000 Var2 2.0
2004-01-01 00:00:00.000 Var3 3.0
2004-01-01 00:00:00.000 Var4 4.0
2004-01-01 00:00:00.000 Var5 5.0
2004-01-01 00:00:00.000 Var6 6.0
2004-01-01 00:00:00.000 Var7 7.0

2004-02-01 00:00:00.000 Var1 10.0
2004-02-01 00:00:00.000 Var2 11.0
2004-02-01 00:00:00.000 Var3 12.0
2004-02-01 00:00:00.000 Var4 13.0
2004-02-01 00:00:00.000 Var5 14.0
2004-02-01 00:00:00.000 Var6 15.0
2004-02-01 00:00:00.000 Var7 16.0

2004-03-01 00:00:00.000 Var1 20.0
2004-03-01 00:00:00.000 Var2 21.0
2004-03-01 00:00:00.000 Var3 22.0
2004-03-01 00:00:00.000 Var4 23.0
2004-03-01 00:00:00.000 Var5 24.0
2004-03-01 00:00:00.000 Var6 25.0
2004-03-01 00:00:00.000 Var7 26.0


Et je souhaiterais avoir ça

Var1 Var2 Var3 Var4
Var5 Var6 Var7
2004-01-01 00:00:00.000 1.0 2.0 3.0 4.0 5.0
6.0 7.0
2004-02-01 00:00:00.000 10.0 11.0 12.0 13.0 14.0 15.0
16.0
2004-03-01 00:00:00.000 20.0 21.0 22.0 23.0 24.0 25.0
26.0

A l'aide s'il vous plait, comment peut-on faire

Merci

5 réponses

Avatar
Fred BROUARD
SQL et les SGBDR ne s'intéresse pas aux aspects cosmétiques. C'est à
l'application cliente de le faire.

Le SGBDR est là pour te donner un résultat, mais pas sa présentation.

Bientôt tu voudra en une requête qu'il te dessine des camenberts !!!!

A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_E.html#Cosmos

A +

Stef a écrit:
Bonjour, je reviens encore sur le sujet mais, j'ai une table qui ressemble
à ça

MaDate Variable Valeur
2004-01-01 00:00:00.000 Var1 1.0
2004-01-01 00:00:00.000 Var2 2.0
2004-01-01 00:00:00.000 Var3 3.0
2004-01-01 00:00:00.000 Var4 4.0
2004-01-01 00:00:00.000 Var5 5.0
2004-01-01 00:00:00.000 Var6 6.0
2004-01-01 00:00:00.000 Var7 7.0

2004-02-01 00:00:00.000 Var1 10.0
2004-02-01 00:00:00.000 Var2 11.0
2004-02-01 00:00:00.000 Var3 12.0
2004-02-01 00:00:00.000 Var4 13.0
2004-02-01 00:00:00.000 Var5 14.0
2004-02-01 00:00:00.000 Var6 15.0
2004-02-01 00:00:00.000 Var7 16.0

2004-03-01 00:00:00.000 Var1 20.0
2004-03-01 00:00:00.000 Var2 21.0
2004-03-01 00:00:00.000 Var3 22.0
2004-03-01 00:00:00.000 Var4 23.0
2004-03-01 00:00:00.000 Var5 24.0
2004-03-01 00:00:00.000 Var6 25.0
2004-03-01 00:00:00.000 Var7 26.0


Et je souhaiterais avoir ça

Var1 Var2 Var3 Var4
Var5 Var6 Var7
2004-01-01 00:00:00.000 1.0 2.0 3.0 4.0 5.0
6.0 7.0
2004-02-01 00:00:00.000 10.0 11.0 12.0 13.0 14.0 15.0
16.0
2004-03-01 00:00:00.000 20.0 21.0 22.0 23.0 24.0 25.0
26.0

A l'aide s'il vous plait, comment peut-on faire

Merci





--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
Stef
Merci, effectivement, j'avais trouvé ça dans ton bouquin, mais je souhaitais
la rendre entièrement paramètrable. Ici dans l'exemple ça va jusqu'à Var7
mais ça peut être plus, et je ne sais pas combien.

Mais bon, tant pis

Merci encore

"Fred BROUARD" a écrit dans le message de
news:
SQL et les SGBDR ne s'intéresse pas aux aspects cosmétiques. C'est à
l'application cliente de le faire.

Le SGBDR est là pour te donner un résultat, mais pas sa présentation.

Bientôt tu voudra en une requête qu'il te dessine des camenberts !!!!

A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_E.html#Cosmos

A +

Stef a écrit:
> Bonjour, je reviens encore sur le sujet mais, j'ai une table qui


ressemble
> à ça
>
> MaDate Variable Valeur
> 2004-01-01 00:00:00.000 Var1 1.0
> 2004-01-01 00:00:00.000 Var2 2.0
> 2004-01-01 00:00:00.000 Var3 3.0
> 2004-01-01 00:00:00.000 Var4 4.0
> 2004-01-01 00:00:00.000 Var5 5.0
> 2004-01-01 00:00:00.000 Var6 6.0
> 2004-01-01 00:00:00.000 Var7 7.0
>
> 2004-02-01 00:00:00.000 Var1 10.0
> 2004-02-01 00:00:00.000 Var2 11.0
> 2004-02-01 00:00:00.000 Var3 12.0
> 2004-02-01 00:00:00.000 Var4 13.0
> 2004-02-01 00:00:00.000 Var5 14.0
> 2004-02-01 00:00:00.000 Var6 15.0
> 2004-02-01 00:00:00.000 Var7 16.0
>
> 2004-03-01 00:00:00.000 Var1 20.0
> 2004-03-01 00:00:00.000 Var2 21.0
> 2004-03-01 00:00:00.000 Var3 22.0
> 2004-03-01 00:00:00.000 Var4 23.0
> 2004-03-01 00:00:00.000 Var5 24.0
> 2004-03-01 00:00:00.000 Var6 25.0
> 2004-03-01 00:00:00.000 Var7 26.0
>
>
> Et je souhaiterais avoir ça
>
> Var1 Var2 Var3


Var4
> Var5 Var6 Var7
> 2004-01-01 00:00:00.000 1.0 2.0 3.0 4.0 5.0
> 6.0 7.0
> 2004-02-01 00:00:00.000 10.0 11.0 12.0 13.0 14.0


15.0
> 16.0
> 2004-03-01 00:00:00.000 20.0 21.0 22.0 23.0 24.0


25.0
> 26.0
>
> A l'aide s'il vous plait, comment peut-on faire
>
> Merci
>
>

--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************



Avatar
Med Bouchenafa[MVP]
SELECT MaDate,
Var1 = SUM(CASE Variable WHEN 'Var1' THEN Valeur ELSE 0 END),
Var2 = SUM(CASE Variable WHEN 'Var2' THEN Valeur ELSE 0 END),
Var3 = SUM(CASE Variable WHEN 'Var3' THEN Valeur ELSE 0 END),
...
....
....
Var7 = SUM(CASE Variable WHEN 'Var7' THEN Valeur ELSE 0 END)
FROM tblTest
GROUP BY MaDate

Been cordialement
Med Bouchenafa
TETRASET
75015 Paris
"Stef" wrote in message
news:c18too$vm5$
Bonjour, je reviens encore sur le sujet mais, j'ai une table qui


ressemble
à ça

MaDate Variable Valeur
2004-01-01 00:00:00.000 Var1 1.0
2004-01-01 00:00:00.000 Var2 2.0
2004-01-01 00:00:00.000 Var3 3.0
2004-01-01 00:00:00.000 Var4 4.0
2004-01-01 00:00:00.000 Var5 5.0
2004-01-01 00:00:00.000 Var6 6.0
2004-01-01 00:00:00.000 Var7 7.0

2004-02-01 00:00:00.000 Var1 10.0
2004-02-01 00:00:00.000 Var2 11.0
2004-02-01 00:00:00.000 Var3 12.0
2004-02-01 00:00:00.000 Var4 13.0
2004-02-01 00:00:00.000 Var5 14.0
2004-02-01 00:00:00.000 Var6 15.0
2004-02-01 00:00:00.000 Var7 16.0

2004-03-01 00:00:00.000 Var1 20.0
2004-03-01 00:00:00.000 Var2 21.0
2004-03-01 00:00:00.000 Var3 22.0
2004-03-01 00:00:00.000 Var4 23.0
2004-03-01 00:00:00.000 Var5 24.0
2004-03-01 00:00:00.000 Var6 25.0
2004-03-01 00:00:00.000 Var7 26.0


Et je souhaiterais avoir ça

Var1 Var2 Var3 Var4
Var5 Var6 Var7
2004-01-01 00:00:00.000 1.0 2.0 3.0 4.0 5.0
6.0 7.0
2004-02-01 00:00:00.000 10.0 11.0 12.0 13.0 14.0


15.0
16.0
2004-03-01 00:00:00.000 20.0 21.0 22.0 23.0 24.0


25.0
26.0

A l'aide s'il vous plait, comment peut-on faire

Merci




Avatar
Vince C.
"Stef" a écrit dans le message de
news:c18too$vm5$
Bonjour, je reviens encore sur le sujet mais, j'ai une table qui ressemble
à ça

MaDate Variable Valeur


[...]
A l'aide s'il vous plait, comment peut-on faire



Un truc, par exemple, serait d'utiliser XSL pour transformer (porte bien son
nom, celui-là) les données. D'abord sauvegarder le recordset ADO dans un objet
XMLDOM, puis transformer avec une feuille XSLT. C'est faisable sans grand impact
sur les performances si la taille est respectable (pas plus de qques dizaines de
Ko).

Mais, comme le mentionne Fred, c'est à l'application client de faire ce travail.
Si tu as besoin de plus d'explications, je t'en fournirai.

Bien à toi,
Vincent C.
Avatar
Stef
Ok merci, je vais jeter un oeil à ta methode

Stef

"Vince C." a écrit dans le message de
news:%23oJgS1H$
"Stef" a écrit dans le message de
news:c18too$vm5$
> Bonjour, je reviens encore sur le sujet mais, j'ai une table qui


ressemble
> à ça
>
> MaDate Variable Valeur
[...]
> A l'aide s'il vous plait, comment peut-on faire

Un truc, par exemple, serait d'utiliser XSL pour transformer (porte bien


son
nom, celui-là) les données. D'abord sauvegarder le recordset ADO dans un


objet
XMLDOM, puis transformer avec une feuille XSLT. C'est faisable sans grand


impact
sur les performances si la taille est respectable (pas plus de qques


dizaines de
Ko).

Mais, comme le mentionne Fred, c'est à l'application client de faire ce


travail.
Si tu as besoin de plus d'explications, je t'en fournirai.

Bien à toi,
Vincent C.