2 u011049519 u011049519 于 2016.03.25 16:11 提问

mysql数据求和操作,更新问题

BEGIN
INSERT INTO t_order_pricesum(r_company,priceSum)
SELECT r_company,sum(price) FROM t_order GROUP BY r_company;

END

我把t_order表中的数据筛选求和后插入t_order_pricesum里,
但t_order更新后再执行函数,因为原来有值了,无法更新,
怎么做才能在不删除t_order_pricesum表里的数据的情况下,更新数据。

4个回答

StressedOut
StressedOut   2016.03.25 21:45
已采纳

INSERT 改成 REPLACE
如果有旧纪录会在插入前将旧纪录删除

mix0313
mix0313   2016.03.25 16:32
 merge into t_order_pricesum t1 
 using (SELECT r_company,sum(price)  as prriceSum FROM t_order GROUP BY r_company) t2
 on (t1.r_company=t2.r_company)
 when  matched then
     update set t1.priceSum=t2.priceSum
when not matched then
    insert values(t2.r_company,t2.priceSum)

mix0313
mix0313   2016.03.25 16:35

insert 后面也可以加列名称 例如

 insert(t1.r_company,t1.priceSum)  values(t2.r_company,t2.priceSum)

希望能帮到你

jim_cainiaoxiaolang
jim_cainiaoxiaolang   2016.03.25 16:27

直接再建一个表放数据不可以吗

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!