2

我想从这个聚合值应该非零的NetQuatity表中获取聚合。BillDetails我写了一个查询,如下所示。但是感觉好像没有优化。有没有人可以折射这个。任何尝试将不胜感激。

SELECT * FROM
(
    SELECT DISTINCT CustId, Name, SUM(NetQuantity) OVER(PARTITION BY CustId, Name) AS Quantity
        FROM BillDetails
) T WHERE Quantity <> 0
4

1 回答 1

0

无法优化此查询,这是获得这些结果的唯一方法。如果您的表上有适当的索引,则不会出现性能问题。 更新 了预过滤零值行,您可以使用此查询:

SELECT * FROM(
SELECT DISTINCT CustId, Name, SUM(NetQuantity) OVER(PARTITION BY CustId, Name) AS Quantity
    FROM BillDetails
    WHERE NetQuantity <> 0) T WHERE Quantity <> 0
于 2013-06-24T08:59:27.227 回答