我有一个像这样的查询
SELECT
ProductID,
ProductSales,
ProductLocationName
FROM
ProductLocation
WHERE
ProductLine=@ProductLine
所以我的样本结果可能就像这样
ProductID ProductSales ProductLocationName
1 $2 Boston
1 $2 Chicago
2 $8 Boston
如果productID/ProductSales
不同,有些ProductLocationName
组合会重复,但我需要返回的内容如下:
我需要在示例结果中返回上面返回的内容,但除此之外,我需要将所有ProductSales
值相加,除了重复的ProductID/ProductSales
组合。
上面的例子:
ProductID 1 + ProductID 2
$2 + $8 = $10
请注意,由于结果中重复了prodID/Sales
值,因此我没有添加$ 2,但是我仍然需要返回上面的3行,因为我必须在我的转发器中显示所有3行。
希望我清楚,另外ProductID
& ProductLocation
(我的查询中还会包含其他列),我需要
ProductSales
的 SampleResults
(如上ProductID
所示)。我知道SUM(ProductSales)
会让我知道这一点。
SUM
ProductSales
ProductID
所有唯一ProductSales
值($ 2 + $ 8 = $ 10)
如果可能的话,我想在相同的存储过程中完成所有这些操作。
我主要关心的是如何获得第2点,意味着SUM所有{{1}}值,在我的例子中$ 2 + $ 8
如果您需要更多信息,请告诉我,这是我在这里的第一篇文章。
答案 0 :(得分:0)
要正确执行此操作,您需要一个子查询进行计算:
SELECT ProductID, ProductSales, ProductLocationName, t.SumProductSales
FROM ProductLocation pl cross join
(select sum(ProductSales) as SumProductSales
from (select productId, max(ProductSales) as ProductSales
from ProductionLocation pl
group by productId
) p
) t
WHERE ProductLine=@ProductLine
您需要注意ProductSales具有相同价值的不同产品。