我想计算客户完成的订单的总价格:
SELECT
C.ctm_Id, O.OrderId, SUM(P.pdt_UnitPrice * O.Quantity),
FROM
Customer C, Orders O, Product P
WHERE
P.pdt_Id = O.OrderID GROUP BY C.ctm_Id
这是错误:
消息 156,级别 15,状态 1,第 2 行
关键字“FROM”附近的语法不正确。
我想计算客户完成的订单的总价格:
SELECT
C.ctm_Id, O.OrderId, SUM(P.pdt_UnitPrice * O.Quantity),
FROM
Customer C, Orders O, Product P
WHERE
P.pdt_Id = O.OrderID GROUP BY C.ctm_Id
这是错误:
消息 156,级别 15,状态 1,第 2 行
关键字“FROM”附近的语法不正确。
额外的逗号:
SELECT C.ctm_Id, O.OrderId, SUM(P.pdt_UnitPrice * O.Quantity),
^-- here
去除 FROM 前的昏迷
SELECT C.ctm_Id, O.OrderId, SUM(P.pdt_UnitPrice * O.Quantity)
FROM Customer C, Orders O, Product P
WHERE P.pdt_Id = O.OrderID GROUP BY C.ctm_Id
SUM(P.pdt_UnitPrice * O.Quantity),
- 额外的,
尝试
SELECT
C.ctm_Id, O.OrderId, SUM(P.pdt_UnitPrice * O.Quantity)
FROM
Customer C, Orders O, Product P
WHERE
P.pdt_Id = O.OrderID GROUP BY C.ctm_Id,O.OrderId
这个问题是您必须在 GROUP BY 子句中包含所有不在聚合函数中的列。您没有在 GROUP BY 子句中添加 O.OrderId 。
luchosrock 提到的是更好的方法。
但是,我强烈建议使用 JOIN。顺便说一句,您也没有在 Customer 和 Order 表之间建立连接。
您想对客户的订单总价求和。您的查询应如下所示:
select
C.ctm_Id,
O.OrderId,
SUM(P.pdt_UnitPrice * O.Quantity)
from Customer C
join Orders O
on C.ctm_Id = O.ctm_Id
join Product P
on O.pdt_Id = P.pdt_Id
group by C.ctm_Id, O.OrderId