SQL Server Pivots: l'Affichage des valeurs de ligne d'en-têtes de colonne
J'ai une table (éléments) qui est dans le format suivant:
ITEMNO | WEEKNO | VALUE
A1234 | 1 | 805
A2345 | 2 | 14.50
A3547 | 2 | 1396.70
A2208 | 1 | 17.65
A4326 | 6 | 19.99
C'est un tableau qui montre la valeur des ventes pour les articles en une semaine donnée.
Les résultats ou ce que je veux afficher dans un format de table est le numéro de l'élément dans la ligne suivie par des colonnes pour chaque semaine contenant les valeurs, par exemple
ITEMNO | WK1 | WK2 | WK3 | WK4 | WK5 ...etc up to 52
A1234 | 805 | 345 | 234 | 12 | 10 ...etc up to 52
A2345 | 23 | 12 | 456 | 34 | 99 ...etc up to 52
A3456 | 234 | 123 | 34 | 25 | 190 ...etc up to 52
Bien que j'ai 52...je n'ai donc que des données pour week9 mais qui augmentera avec le temps.
Donc, fondamentalement, ce qu'il est, je suis à la recherche à afficher est le numéro de la semaine de la valeur comme en-tête de colonne.
Est-ce possible...même si je suis tenté d'extraire les données et de les afficher correctement à l'aide de code/(asp.net) mais je me demandais si il y avait loin de l'afficher comme ça en SQL?
Personne ne sait ou pense que ce pourrait être la meilleure façon?
..........fait:)
OriginalL'auteur thegunner | 2012-03-06
Vous devez vous connecter pour publier un commentaire.
Il y a deux façons de le faire avec SQL statique et dynamique SQL:
Statique Pivot:
Dynamique Pivot:
Est-il avantageux d'utiliser
NVARCHAR
vsVARCHAR
?voir cette réponse
Merci pour cela. Ma principale préoccupation est avec des performances comme expliqué ici et ici. Quelles sont vos pensées sur cette question?
il dépend de la situation mais pour le SQL dynamique, j'ai toujours utiliser le type de données nvarchar
OriginalL'auteur Taryn
Peut-être quelque chose comme ceci:
Des données de Test
Semaine colonnes
Juste le comprenait des semaines
Dynamique de pivot
Chute de la temp table
OriginalL'auteur Arion
Utilisation Pivot, bien que tout à fait un peu de code..
Si vous créez un rapport reporting services, peut utiliser la matrice..
OriginalL'auteur Jānis
Suivez les ci-dessous walkthrogh qui explique clairement
http://www.tsqltutorials.com/pivot.php
OriginalL'auteur PraveenVenu
Vous pouvez utiliser PIVOT si vous voulez le faire en sql directement.
Il peut être plus efficace d'utiliser le Serveur SQL server pour ce faire, par opposition au client en fonction de la taille des données et à l'agrégation.
OriginalL'auteur Cade Roux