56,679
社区成员
发帖
与我相关
我的任务
分享
--database : MySQL
--version : 5.0.77
--TEMPORARY table temp
create TEMPORARY table temp(
id int(11) not null auto_increment primary key,
logNo varchar(32),
qid varchar(32),
brokerage decimal(16, 2),
balanceAmount decimal(16, 2)
);
-- temp record
insert into temp (qid, logNo, brokerage, balanceAmount) values ('A1','B1','100','100');
insert into temp (qid, logNo, brokerage, balanceAmount) values ('A1','B1','200','200');
--table PayStream
create table PayStream(
id int(11) not null auto_increment primary key,
logNo varchar(32),
qid varchar(32),
brokerage decimal(16, 2),
balanceAmount decimal(16, 2)
);
-- PayStream record
insert into PayStream(qid, logNo, brokerage, balanceAmount) values ('A1','B1','0.00','0.00');
insert into PayStream(qid, logNo, brokerage, balanceAmount) values ('A2','B2','0.00','0.00');
insert into PayStream(qid, logNo, brokerage, balanceAmount) values ('A3','B3','0.00','0.00');
--需要得到的结果,PayStream:
+----+-------+-----+-----------+---------------+
| id | qid | logNo| brokerage | balanceAmount |
+----+-------+-----+-----------+---------------+
| 1 | A1 | B1 | 200.00 | 200.00 |
| 2 | A2 | B2 | 0.00 | 0.00 |
| 3 | A3 | B3 | 0.00 | 0.00 |
+----+-------+-----+-----------+---------------+
update PayStream p set brokerage = (select sum(brokerage) from temp t where t.logNo = p.logNo and t.qid = p.qid );
update PayStream p set balanceAmount = (select sum(balanceAmount) from temp t where t.logNo = p.logNo and t.qid = p.qid );