尝试对不同值求和 SQL

问题描述 投票:0回答:4

我无法得出 SSRS 中单元格的值,该值应该是不同值的总和。我有一个 SSRS 报告,类似于下面的屏幕截图:

enter image description here

我无法获取红色值(11.25 美元)。我基本上需要根据不同的跟踪号来总结运输成本。因此,有两个不同的跟踪编号,一个的运输成本为 5.25 美元,另一个的运输成本为 6.00 美元,因此以红色显示的总额应为 11.25 美元。但我无法在 SSRS 中实现这一点,也无法在 SQL 查询中弄清楚它。

我正在考虑像这样的子查询(我知道下面的不是有效的 SQL):

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

但是我不知道怎么写。

sql reporting-services distinct-values
4个回答
32
投票

首先获取不同的列表...

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

17
投票

您可以执行以下操作:

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

但是,我不推荐这样做。您可以拥有两件价格相同的商品,但只会计算一件。

更好的方法是使用

Tracking #
函数为每个
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

2
投票

尝试类似的事情


从中选择总和(运输成本)
(从表中选择不同的跟踪号、运输成本)

干杯


0
投票

如果你有 IDENTITY 列,你可以使用这个技巧:

SELECT (SUM(DISTINCT[运费] + ID) - SUM(DISTINCT ID)) AS [运费] FROM ...

我使用这个技巧来避免在具有大量 JOIN 的复杂查询中对重复行进行求和

© www.soinside.com 2019 - 2024. All rights reserved.