A 表 SL 总数量 MC 物品名称 GG 规格 同一规格的物品是一条
B 表 JHSL 进货数量 MC 物品名称 GG 规格 同一规格的物品是多条
想把B表的进货数量 总计更新到A表 总数量
问怎么写
B 表 JHSL 进货数量 MC 物品名称 GG 规格 同一规格的物品是多条
想把B表的进货数量 总计更新到A表 总数量
问怎么写
解决方案 »
- 使用 oracle managed odp.net , 在Insert into时 , 使用returning 报网络错误 .
- pl/sql developer命令窗口打开提示错误
- oracle日期函数,类型转换
- 怎样在VC的ado连接中以sys用户名登录oracle???
- OCI8执行OCIStmtFetch2返回的是第二行,何解?
- 如何将oralce中的数据导入到access数据库中?
- 关于如何取得字段类型,长度的问题!!--在线等
- 在oracle中用那个函数可以得到两个日期之间的天数?
- 谁能解释这两个关键字的用法?
- C# 调用oracle 的时候错误
- oracle 10g isqlplus 还有 em 打不开
- 求一SQL!!
(select MC,GG,sum(b.JHSL) AS JHSL from b group by gc,mc) B
where A.HC=B.HC AND A.GG=B.GG)
SET SL=(SELECT B.JHSL FROM
(select MC,GG,sum(b.JHSL) AS JHSL from b group by GG,mc) B WHERE B.GG=A.GG AND A.MC=B.MC)
WHERE EXISTS(SELECT 1 FROM B WHERE B.GG=A.GG AND B.MC=A.MC )
merge into a
using (select mc, gg, sum(jhsl)) s from b group by mc, gg) c --对b表按物品,规格汇总
on (a.mc = c.mc and a.gg = c.gg) --连接条件
when matched then --匹配时,对a表sl累加
update set a.sl := a.sl + c.s
when not matched then --不匹配时,在a表插入一条数据
insert values (c.s, c.mc, c.gg);
DROP TABLE a ;
CREATE TABLE a
(
MC VARCHAR(30) PRIMARY KEY NOT NULL,
GG VARCHAR(4) NOT NULL,
SL NUMBER(5) NULL
)
;
DROP TABLE b ;
CREATE TABLE b
(
MC VARCHAR(30) PRIMARY KEY NOT NULL,
GG VARCHAR(4) NOT NULL,
JHSL NUMBER(5) NULL
)
;UPDATE A
SET SL=(
SELECT B1.JHSL FROM
(select MC,GG,sum(b.JHSL) AS JHSL from b group by GG,mc) B1 WHERE B1.GG=A.GG AND A.MC=B1.MC
)
WHERE EXISTS(SELECT 1 FROM B1 WHERE B1.GG=A.GG AND B1.MC=A.MC )
--这里说表B1不存在,A 表 SL 总数量 MC 物品名称 GG 规格 同一规格的物品是一条
B 表 JHSL 进货数量 MC 物品名称 GG 规格 同一规格的物品是多条
想把B表的进货数量 总计更新到A表 总数量