J'essaie d'obtenir des données de pivotement de quelques années pour me donner un total cumulatif au fur et à mesure que les années augmentent, puis obtenez le top 5.
J'ai essayé d'utiliser une somme sur le total, pendant les années de la colonne de l'année , mais cela ne semble pas augmenter. La question que je pense est due à certaines valeurs nulelles potentiellement? P>
Les données du tableau apparaissent actuellement comme p> mais je vis de l'obtenir comme p>
3 Réponses :
Est-ce ce que vous voulez?
Y a-t-il de toute façon de le rendre dynamique? Plutôt que d'avoir à hard fairecer les années?
Et cela me donnera-t-il le top 5 au total après-vente? ou juste le premier 5?
@Sam Smith . . . Cela donne le top 5 basé sur la commande par code>, ce qui est probablement le total. Si vous voulez un pivot dynamique, vous devez utiliser SQL dynamique. Cela signifie que vous devez construire la requête comme une chaîne. Possible, mais beaucoup plus compliqué.
Ok, cela fait à peu près ce que je veux, mis à part l'ajout de l'année précédente à l'année en cours. Donc, dans mon exemple, BOB a mangé 6 pommes en 2005, puis 82 en 2006, la SO 2006 montre 88.
@Sam Smith . . . Si ceux-ci sont cumulatifs, utilisez <= code>. J'ai changé la réponse.
Tache sur. Merci encore Gordon
Une autre question, à quel point il serait difficile de l'afficher dans des colonnes et de remplir les valeurs non existantes, par exemple le nom | Pommes | Année Sam | 0 | 2004 Sam | 2 | 2005 Sam | 2 | 2006 (aucune pomme consommée cette année, valeur reportée) essentiellement de sorte que chaque nom ait une valeur pour chaque année? Merci
@Sam Smith . . . Comme structuré, chaque nom devrait avoir une valeur pour chaque année.
Vous pouvez utiliser un cas lorsque
select top 5 name, max(case when year=2004 then ApplesEaten end ) [2004], max(case when year=2005 then ApplesEaten end ) [2005], max(case when year=2006 then ApplesEaten end ) [2006], ....................... from table_name group by name order by sum(ApplesEaten ) desc
échantillon de données script SQL à l'aide de SQL dynamique p>