1

我想计算客户完成的订单的总价格:

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”附近的语法不正确。

4

5 回答 5

5

额外的逗号:

SELECT C.ctm_Id, O.OrderId, SUM(P.pdt_UnitPrice * O.Quantity), 
                                                             ^-- here
于 2012-11-30T14:57:34.543 回答
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
于 2012-11-30T14:57:46.260 回答
1

SUM(P.pdt_UnitPrice * O.Quantity), - 额外的,

于 2012-11-30T14:58:05.370 回答
1

尝试 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

于 2012-11-30T15:09:53.107 回答
0

这个问题是您必须在 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
于 2012-11-30T15:35:24.143 回答