表A
的 CES | REG |年| INC | OUC
---------------------------------------
C1 |美国| 2015年| 0 | 0
C2 |英国| 2014 | 0 | 0
C3 | BR | 2015年| 0 | 0
C1 | RU | 2016 | 0 | 0
C1 |美国| 2016 | 0 | 0
表B
CES | REG |年| VAL | DIS(%)
-----------------------------------------
C1 |美国| 2015年| 100 | 10个
C1 |美国| 2015年| 200 | 20个
C1 | RU | 2016 | 200 | 10个
C1 |美国| 2016 | 500 | 20个
C2 |英国| 2014 | 200 | 20个
C2 |英国| 2014 | 500 | 10个
C3 | BR | 2015年| 1000 | 30个
C3 | BR | 2015年| 500 | 10个
C3 | BR | 2015年| 200 | 20个
我想更新表B中的表A,其中year = 2015,如下所示:
的 CES | REG |年| INC | OUC
---------------------------------------
C1 |美国| 2015年| 250 | 0
C2 |英国| 2014 | 0 | 0
C3 | BR | 2015年| 1310 | 0
C1 | RU | 2016 | 0 | 0
C1 |美国| 2016 | 0 | 0
*)注意:
TABLE_A.INC = SUM(TABLE_B.VAL * TABLE_B.DIS / 100)
表B表B中的更新,其中CES,REG和YEAR相同
for C1,USA,2015:
第1行+第2行表B =(100 *(100-10)/ 100)+(200 *(100-20)/ 100)
对于C3,BR,2015:
第7行+第8行+第9行表B =(1000 *(100-30)/ 100)+(500 *(100-10)/ 100)+(200 *(100-20)/ 100)
可能是单个查询吗? THX
=============================================== =========
那好吧...
我昨天得到了答案......
UPDATE a SET inc = (SELECT SUM(val*(100-dis)/100) FROM b WHERE a.ces=b.ces AND a.reg=b.reg AND a.year=b.year) WHERE a.year = '2015'
请求帮助:D
答案 0 :(得分:0)
尝试下面的内容:
UPDATE TABLE_A A, TABLE_B B
SET INC = (B.`VAL` * B.`DIS` / 100)
WHERE A.`CES` = B.`CES`
AND A.`REG` = B.`REG`
AND A.`YEAR` = B.`YEAR`
;