web-dev-qa-db-ja.com

異なる値を合計しようとしていますSQL

SSRSのセルの値を思い付くのに問題があります。これは、個別の値の合計である必要があります。以下のスクリーンショットのようなSSRSレポートがあります。

enter image description here

赤($ 11.25)の値を取得するのに問題があります。基本的に、個別の追跡番号に基づいて、船のコストを合計する必要があります。したがって、2つの異なる追跡番号があります。1つは出荷コストが$ 5.25、もう1つは$ 6.00であるため、赤で表示される合計は$ 11.25になります。しかし、SSRSでこれを達成することはできず、SQLクエリでもそれを理解することはできません。

私は次のようなサブクエリを考えています(そして私は以下が有効なSQLではないことを知っています):

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

でも書き方がわかりません。

7
kyle_13

最初に個別のリストを取得してください...

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

次のことができます。

_SELECT SUM(distinct [Ship Cost]) . . .
_

しかし、私はこれをお勧めしません。同じコストで2つのアイテムを持つことができ、1つだけがカウントされます。

より良い方法は、row_number()関数を使用して、_Tracking #_ごとに1つの値を選択することです。

_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

次のようなものを試してください

 
 select sum(shipcost)from 
(select different Tracking#、shipcost from table)

乾杯