web-dev-qa-db-fra.com

Essayer de résumer des valeurs distinctes SQL

J'ai du mal à trouver une valeur pour une cellule dans SSRS, qui devrait être une somme de valeurs distinctes. J'ai un rapport SSRS qui ressemble à la capture d'écran ci-dessous:

enter image description here

J'ai de la difficulté à obtenir la valeur en rouge (11,25 $). J'ai essentiellement besoin de faire la somme du coût du navire, en fonction de numéros de suivi distincts. Il y a donc deux numéros de suivi distincts, l'un avec un coût de navire de 5,25 USD et l'autre de 6,00 USD. Le total affiché en rouge doit donc être de 11,25 USD. Mais je ne peux pas atteindre cet objectif dans SSRS et je ne le comprends pas non plus dans la requête SQL.

Je pense une sous-requête comme (et je sais que le code ci-dessous n'est pas valide SQL):

(SELECT SUM([Ship Cost]) WHERE [Tracking #] IS DISTINCT) AS [Ship Cost]

Mais je ne sais pas comment l'écrire.

7
kyle_13

Obtenez la liste distincte en premier ...

SELECT SUM(SQ.COST)
FROM
(SELECT DISTINCT [Tracking #] as TRACK,[Ship Cost] as COST FROM YourTable) SQ
12
Declan_K

Vous pouvez faire ce qui suit:

SELECT SUM(distinct [Ship Cost]) . . .

Mais, je ne recommande pas cela. Vous pourriez avoir deux articles au même coût et un seul serait compté.

Le meilleur moyen est de sélectionner une valeur pour chaque Tracking #, à l'aide de la fonction row_number():

select SUM(case when seqnum = 1 then [Ship Cost] end)
from (select t.*,
             row_number() over (partition by [Order #], [Tracking #]
                                order by (select NULL)
                               ) as seqnum
      . . .
     ) t
6
Gordon Linoff

essayez quelque chose comme

 
 Sélectionnez la somme (Shipcost) de 
 (sélectionnez un numéro de suivi distinct, Shipcost dans le tableau) 

à votre santé

0