这几条sql查询语句有错误吗,如果有,错在哪?

来源:百度知道 编辑:UC知道 时间:2024/05/27 00:58:15
1.
SELECT ProductID AS PROID, SUM(Quantity) AS Quantity_SUM
FROM OrderDetails
GROUP BY PROID
HAVING Quantity_SUM >= 100

2.
SELECT ProductID, UnitPrice, SUM(Quantity)
FROM OrderDetails
GROUP BY ProductID

谢谢大家 帮帮我

1. 原因,是由于在HAVING 中使用了列的别名的问题,使用原来的列名以及函数就没问题了,
SELECT ProductID AS PROID, SUM(Quantity) AS Quantity_SUM
FROM OrderDetails
GROUP BY PROID
HAVING SUM(Quantity) >= 100

2. 是由于在分组的时候,需要对每分组的字段使用聚合函数,
不能在同一个查询中,有的列包含集合函数或分组,而别的列又不使用集合函数或分组,原则是要使用就都使用,要不使用就都不使用,因此有下面2中改法:
SELECT ProductID, UnitPrice, SUM(Quantity)
FROM OrderDetails
GROUP BY ProductID , UnitPrice
或者用
SELECT ProductID, SUM(Quantity)
FROM OrderDetails
GROUP BY ProductID
呵呵,希望能有帮助,^_^

SELECT ProductID AS PROID, SUM(Quantity) AS Quantity_SUM
FROM OrderDetails
GROUP BY PROID
HAVING SUM(Quantity) >= 100

SELECT ProductID, UnitPrice, SUM(Quantity)
FROM OrderDetails
GROUP BY ProductID , UnitPrice

好了

SELECT ProductID AS PROID, SUM(Quantity) AS Quantity_SUM
FROM OrderDetails
GROUP BY PROID
HAVING SUM(Quantity) >= 100

HAVING只可对现有的实际资料栏进行作用,不可为占定的资料栏