J'ai une table var avec quelques lignes, mais une seule colonne de type DATETIME, comme ceci:problème PIVOT lors de la conversion 4 rangs (1 colonne) à 5 colonnes (1 ligne)
[Day]
2010-08-03
2010-08-04
2010-08-10
2010-08-11
Je dois montrer sur certaines colonnes mais sur une seule ligne. Mon jeu de résultats sera limité à 5 lignes, alors je peux limiter à 5 colonnes aussi. Exemple de ce que je dois:
[Day1] [Day2] [Day3] [Day4] [Day5]
2010-08-03 2010-08-04 2010-08-10 2010-08-11 NULL
je tentais de le faire en utilisant PIVOT dans SQL Server 2005. Mais tous exemple utilise plusieurs colonnes à agréger des valeurs, alors je ne comprends pas.
C'est la requête que je voulais:
SELECT r.* FROM (SELECT ROW_NUMBER() OVER (ORDER BY Day ASC) Line, Day FROM @MyDays) AS o
PIVOT (MIN(Line) FOR Day IN (Day1, Day2, Day3, Day4, Day5)) AS r
Mais le résultat est tout NULL:
[Day1] [Day2] [Day3] [Day4] [Day5]
NULL NULL NULL NULL NULL
Quelqu'un pourrait-il me montrer ce que je fais mal?
Maintenant, je compris: les valeurs dans les lignes doivent être les mêmes que les noms de colonnes que je veux. Merci, a parfaitement fonctionné! –