我想找到包裹物品的总数&对于给定的责任方和一组包,包装项目是未完成的。
我必须报告的表是在包级别进行的半卷,并重复我需要的数据。 这意味着一个简单的总和将不起作用。
我可以通过做一个不同的选择然后从中选择总和来解决这个问题。
我的问题是:
是否可以使用子选择执行相同的查询?
如果不使用子选择来解决问题有什么意义吗?
以下是查询示例:
SELECT
Sum(Outstanding) as Outstanding,
Sum(Total) as Total
FROM
(
SELECT
DISTINCT
O as Outstanding,
T as Total
FROM
PackageTotals
WHERE
Package in ('XYZ', 'ABC', 'LMN')
AND Responsible = 'ZZ'
) Data
答案 0 :(得分:1)
您的查询和执行此操作之间应该没有区别:
Select
sum(distinct outstanding) as outstanding,
Sum(distinct total) as total
From
packagetotals
Where
package in ('xyz', 'ABC', 'LMN')
And responsible = 'zz'
然而,这可能表明存在更大的数据问题
我认为你在这里找到的唯一区别就是可读性。我更喜欢我的可读性,但对于性能而言,我肯定可以忽略不计。