大家好!
我有两张表,
TableA(标准数据表)
ID comproductCode StandardWeight
1 K1 1
2 K2 2
3 K3 3
...... TableB(生产实际表)
ID comproductCode Weight DiffWeight
1 K1 1.1 0
2 K2 1.9 0
3 K1 0.9 0
4 K3 3.2 0
5 K2 2.3 0
......
我想更新TableB中的DiffWeight(差异重量)这一列,即把用TableB中的Weight减去TableA中的StandardWeight,得到:
TableB生产实际表
ID comproductCode Weight DiffWeight
1 K1 1.1 0.1
2 K2 1.9 -0.1
3 K1 0.9 -0.1
4 K3 3.2 0.2
5 K2 2.3 0.3
......
请问这个语句该怎么写?其中TableA和TableB的ID并没有什么关联
我有两张表,
TableA(标准数据表)
ID comproductCode StandardWeight
1 K1 1
2 K2 2
3 K3 3
...... TableB(生产实际表)
ID comproductCode Weight DiffWeight
1 K1 1.1 0
2 K2 1.9 0
3 K1 0.9 0
4 K3 3.2 0
5 K2 2.3 0
......
我想更新TableB中的DiffWeight(差异重量)这一列,即把用TableB中的Weight减去TableA中的StandardWeight,得到:
TableB生产实际表
ID comproductCode Weight DiffWeight
1 K1 1.1 0.1
2 K2 1.9 -0.1
3 K1 0.9 -0.1
4 K3 3.2 0.2
5 K2 2.3 0.3
......
请问这个语句该怎么写?其中TableA和TableB的ID并没有什么关联
解决方案 »
- sqlplusw无法连接
- oracle 存储过程 遇到个问题
- 请教大家一个SQL查询的问题!谢谢.
- 一个查询问题,挺难的,请教高手
- 导出10G数据消耗时间已经12小时以上,如何解决?另外字符集问题请教
- 新装的oracle我想配置监听程序,发现的1521端口已经被另外一个TNSLSNR.exe占用,为什么?怎么办?
- 经验丰富的人,帮我看下表有几千万条数据,如何修改sql,提高查询速度!!
- 请教,用什么软件能监视到客户端操作数据库的情况?
- 请问:系统重装后,怎么恢复以前的ORACLE数据库呢?ORACLE数据库文件都E盘上
- 几个小问题?
- 求一个多表查询左连接或右连接的sql
- pl/sql错误:存储过程!!1
SQL> SELECT * FROM TA; ID CODE STANDARDWEIGHT
--------------------------------------- -------------------- ---------------------------------------
1 K1 1
2 K2 2
3 K3 3SQL> SELECT * FROM TB; ID CODE WEIGHT DIFFWEIGHT
--------------------------------------- -------------------- ------ ----------
1 K1 1.1 0
1 K2 1.9 0
1 K1 0.9 0
1 K3 3.2 0
1 K2 2.3 0SQL>
SQL> UPDATE TB SET DiffWeight=(
2 SELECT TB.WEIGHT-TA.STANDARDWEIGHT FROM TA WHERE TA.CODE=TB.CODE
3 );5 rows updatedSQL> SELECT * FROM TB; ID CODE WEIGHT DIFFWEIGHT
--------------------------------------- -------------------- ------ ----------
1 K1 1.1 0.1
1 K2 1.9 -0.1
1 K1 0.9 -0.1
1 K3 3.2 0.2
1 K2 2.3 0.3
2 SELECT TB.WEIGHT-TA.STANDARDWEIGHT FROM TA WHERE TA.CODE=TB.CODE
3 );这个根据数据情况,加个exists UPDATE TB SET DiffWeight=(
SELECT TB.WEIGHT-TA.STANDARDWEIGHT FROM TA WHERE TA.CODE=TB.CODE
)
WHERE EXISTS(SELECT 1 FROM TA WHERE TA.CODE=TB.CODE);
2 SELECT TB.WEIGHT-TA.STANDARDWEIGHT FROM TA WHERE TA.CODE=TB.CODE
3 );这个根据数据情况,加个exists UPDATE TB SET DiffWeight=(
SELECT TB.WEIGHT-TA.STANDARDWEIGHT FROM TA WHERE TA.CODE=TB.CODE
)
WHERE EXISTS(SELECT 1 FROM TA WHERE TA.CODE=TB.CODE);