ALTER TABLE order_t ADD Totalfixed DECIMAL(7,2);
UPDATE Order_t
SET Totalfixed = (
SELECT orderid, SUM(price * quantity) AS tf
FROM
orderline ol,
product p
WHERE
ol.productid = p.productid
AND ol.orderid = orderid
GROUP BY orderid
);
一切都很好,但我得到了:
操作数应包含1列
如果我从子查询中删除orderid
,我会得到:
子查询返回超过1行
无论如何在没有join
的情况下完成这项工作吗?
答案 0 :(得分:0)
无论数据库如何,上下文都需要标量子查询。这意味着避免使用group by
并仅返回一列:
UPDATE Order_t
SET Totalfixed = (
SELECT SUM(price * quantity) AS tf
FROM orderline ol JOIN
product p
ON ol.productid = p.productid
WHERE ol.orderid = Order_t.orderid
);
我还修复了JOIN
语法(总是使用显式连接)和相关子句,因此它引用了外部查询。
答案 1 :(得分:0)
%