【发布时间】:2014-03-25 09:26:08
【问题描述】:
我有一张桌子,上面有很多账单。我需要从账单中选择超出价格的项目。
我试过这个:
SELECT d.BillNumber
, SUM(d1.Amount* d1.Price)
, d2.Name AS FinalPrice
FROM GEMsc106Antet d LEFT OUTER JOIN GEMsc106Pozitii d1
ON d1.Luna = d.Luna AND d1.NumarI = d.NumarI
JOIN GEcProduse d2 ON d2.Cod = d1.CodMaterial
WHERE YEAR(d.Data) = 2013
GROUP BY d.BillNumber , d2.Name
HAVING SUM(d1.Amount* d1.Price) >= 10000
但是这个语句似乎没有起作用,因为首先它只选择了我 2013 年的账单,这没问题,但是我应该得到所有大于 10.000 的账单,我不能使用总和where 子句,只有在那之后我才应该对它们进行 GROUP。
我能做什么?
【问题讨论】:
-
查询似乎很好...您有 3 个连接...因此,如果至少有一个连接未被验证,则查询将跳过很多结果...尝试通过删除一些连接来进行测试以确保何时出现问题
-
BillNumber 是否唯一?如果是这样,您将不需要分组,只需在 where 子句中检查金额 * 价格
标签: sql sql-server tsql sum where