j'ai une requête dynamique avec un tri dynamique sur le filtre à temps qui permettrait de créer un ordre de tri décroissant des articles produits par valeur dans la plupart des cas, est le prévu .:TSQL commande dynamique des valeurs
ROW_NUMBER() OVER (PARTITION BY T.Time_Calculation ORDER BY SUM(T.[Displayed Value 1]) DESC) +2 end AS DisplayItem_SortOrder
Maintenant le catch: J'ai un type de dataset (défini par un champ dans la clause WHERE) où les nombres négatifs viennent aussi, et dans ce cas je dois passer des valeurs de type float positives les plus élevées.
Le ABS() ne résout pas cela parce que certains nombres positifs apparaissent au milieu. J'ai essayé d'ajouter une instruction CASE mais il semble que "ASC" et "DESC" ne sont pas quelque chose que l'on peut ajouter à l'intérieur. Toutes les suggestions seraient appréciées.
Display Name DisplayItem_SortOrder Displayed Value 1
Product1 3 -31454.61396
Product10 4 -3407.16712
Product2 5 -708.9942251
Product3 6 123.5454381
Product6 7 428.6027531
Product5 8 454.4814295
Product4 9 454.9838374
Product9 10 455.54
Product8 11 471.54
Avez-vous essayé avec le CASE dans le ORDER BY? Vous devriez être capable de trier avec ASC et DESC de cette façon. –
L'ASC normal ne commence-t-il pas par le nombre le plus bas (AKA le plus négatif) par le nombre le plus élevé (le plus haut positif)? Vous ne devriez même pas avoir besoin de spécifier ASC ou DESC –
Les données que vous avez publiées semblent être triées par ordre croissant, n'est-ce pas suffisant? Ou voulez-vous -708.994 ... être la première valeur, et après cela -3407.167 ...? –