大神们进来下,求帮助
有一个A表, 金额是空,一个客户有唯一的一个批次
客户 批次 金额
1 光大 2012
2 农行 2013
3 建行 2014
有一个B表,一个客户可能有多个批次
客户 批次 金额
1 光大 2012 100
2 光大 2013 140
3 光大 2014 150
4 农行 2012 111
现在我查询A表,select 客户,批次 from A where 条件
结果为:
客户 批次
1 光大 2012
2 农行 2013
3 建行 2014
然后我现在想 通过这个查询的结果的每一行,去查询B表金额的总数,然后去通过客户,批次 更新A表的金额
刚刚可能我没说明白,在说一下
[解决办法]
2005以上可用:
;
WITH cte
AS ( SELECT 客户 ,
批次 ,
SUM(金额) 金额
FROM b
GROUP BY 客户 ,
批次
)
UPDATE a
SET a.金额 = b.金额
FROM a
INNER JOIN cte b ON a.客户 = b.客户
AND a.批次 = b.批次
update a set a.金额=b.money
from tbA as a cross apply
(select sum(money)money from tbB as b where a.客户=b.客户 and a.批次=b.批次 group by b.客户,b.批次)as b