我必须创建一个查询,该查询为该客户的每笔订单将客户折扣提高10(将先前值增加10)。
数据库结构如下:
CLIENT(client_id, name, discount)
ORDER(id, client_id)
有人知道吗?
答案 0 :(得分:2)
我认为这就是您所需要的:
UPDATE CLIENT c
SET c.DISCOUNT = c.DISCOUNT + 10 * (SELECT COUNT(*) FROM ORDER WHERE client_id = c.client_id)
在此声明中,
SELECT COUNT(*) FROM ORDER WHERE client_id = c.client_id
返回每个客户下的订单数量
答案 1 :(得分:0)
UPDATE CLIENT SET DISCOUNT = 10 where client_id in(从ORDER中选择SELECT client_id)
答案 2 :(得分:0)
子查询将是此类情况的最佳解决方案
更新客户端 设置CLIENT.DISCOUNT = CLIENT.DISCOUNT + 10 *(从订单中选择COUNT(*)client_id = CLIENT.client_id)