update qyjejxlsb
SET (qyjejxlsb_wgslx, qyjejxlsb_jylx, qyjejxlsb_wclx) =
(SELECT 0,
0,
0
FROM cpsyljs WHERE qyjejxlsb_rq = cpsyljs_rq
);连个表 qyjejxlsb , cpsyljs
现在的问题是 中间的SELECT语句查出一条语句,而qyjejxlsb又两条数据,这样在更新的时候就会报错,因为在更新其中一条数据的时候,插入的全部都是NULL值。应该怎么修改这个语句,使得更新的语句仅仅是SELECT 语句中用到的日期多查询出的数据
SET (qyjejxlsb_wgslx, qyjejxlsb_jylx, qyjejxlsb_wclx) =
(SELECT 0,
0,
0
FROM cpsyljs WHERE qyjejxlsb_rq = cpsyljs_rq
);连个表 qyjejxlsb , cpsyljs
现在的问题是 中间的SELECT语句查出一条语句,而qyjejxlsb又两条数据,这样在更新的时候就会报错,因为在更新其中一条数据的时候,插入的全部都是NULL值。应该怎么修改这个语句,使得更新的语句仅仅是SELECT 语句中用到的日期多查询出的数据
ID A B
---------- ---------- ----------
1 10 20
2 1 2
3 3 2表tb2及数据如下:
ID A B
---------- ---------- ----------
1 10 20
2 10 20根据表tb2的id更新表tb1对应的a,b的值。update tb1 set (a,b) = (select a,b from tb2 where id = tb1.id) where id in (select distinct id from tb2) ID A B
---------- ---------- ----------
1 10 20
2 10 20
3 3 2
---------------------------------------------------------------------------------------------------------
表tb2及数据如下:
ID A B
---------- ---------- ----------
1 10 20
2 10 20
3 3 2
1 20 40
2 20 40根据ID分组求A,B的和,然后更新表tb1update tb1 set (a,b) = (select sum(a),sum(b) from tb2 where id = tb1.id) where id in (select distinct id from tb2) ID A B
---------- ---------- ----------
1 30 60
2 30 60
应该在最外层添加
where exists (select 'x' from cpsyljs WHERE qyjejxlsb_rq = cpsyljs_rq
)