Comment faire pivoter un tableau horizontalement dans sql server
j'ai de la table avec les colonnes :
Sr.no Subject No of class attended
-------------------------------------
1 English 3
2 Maths 4
3 SocialScience 5
Je veux de la table dans ce format
English Maths SocialScience
---------------------------------
3 4 5
J'ai essayé ceci:
Select case when subject ='Maths' then COUNT(No_of_Candidates) else null end as Maths
mais avec cela je reçois les données comme ceci :
English Maths SocialScience
---------------------------------
3
4
5
S'il vous plaît aider moi comment dois-je résoudre ce problème..
OriginalL'auteur user1274646 | 2012-08-29
Vous devez vous connecter pour publier un commentaire.
Comme vous l'avez dit vous ne voulez pas la sortie comme ceci:
Vous avez besoin d'utiliser une sous-Requête comme ceci:
De sortie:
Voir ce SQLFiddle
Voir pour plus de SQL SERVER – PIVOT et UNPIVOT Exemples de Table
OriginalL'auteur hims056
À l'aide de PIVOT
Ouai, mais le code donné par vous à cette réponse ne satisfera pas OP.
Mais nous devrions écrire clair (ou exact) réponse (le code), OP besoin. Voir le résultat de votre code dans le ce violon. OP ai dit dans la question qu'il ne nécessite pas de ce résultat.
Je pense que vous êtes un peu trop dure sur @hims056, et sans le reconnaître une faille dans votre réponse. Voudriez-vous me faire remarquer l'erreur ou préférez-vous le faire vous-même?
OriginalL'auteur podiluska
podiluska la solution est correcte, j'aimerais juste partager une solution dynamique, si vous souhaitez ajouter d'autres sujets sur la table, et ne souhaitez pas modifier la requête. Il a cependant une limite autour de la longueur, mais vous pouvez l'utiliser pour certaines situations, pour sûr:
Voici un SQL Violon.
OriginalL'auteur András Ottó
Si vous ne souhaitez pas utiliser le PIVOT de mots clés, vous pouvez simplement utiliser MAX:
Si la table contient des résultats pour plusieurs élèves, par exemple, vous devez utiliser un GROUPE, PAR exemple:
Toute valeur est supérieure à la valeur NULL, donc le MAX d'éliminer les valeurs Null
Oh, je vois, il suffit de retirer la fonction de COMPTAGE dans l'ensemble, de tous les 3 expressions et laissez-moi savoir ce que vous obtenez. J'ai revu le code ci-dessus.
si je supprime le Comte, je ne vais pas être en mesure de compter les no_of_candidates coz il actuly compte le nombre de pas de lignes de la table..
Ok, je suppose que votre première question est un peu confus, alors. Alors avez-vous besoin de faire quelque chose avec les chiffres indiqués dans le tableau (pas de classe fréquentée)? Dans l'exemple, vous avez compris, vous ne comptez pas de rien, vous êtes juste en transformant les valeurs existantes dans la 3ème colonne en lignes. Mais alors que vous avez énuméré le comte fonctions en tant que COMTE(No_of_Candidates)! D'où vient le No_of_Candidates colonne venir?
OriginalL'auteur Sam Anwar
je suis donc venu sur l'exigence de transposition des lignes et des colonnes où je voulais augmenter dynamiquement les colonnes en fonction des données (et de ne pas coder en dur comme l'anglais, les Mathématiques, etc. vous voyez l'idée)
voici mon
Les Données De L'Échantillon
Code:
OriginalL'auteur GDS