请教一个UPDATE语句的写法

bluery 2008-11-05 07:23:17
假如有两张表:
1.TBL_TODAYSTOCK(库存表)
字段:VENDER(供应商),STOCK(库存)
2.TBL_INSTOCK(进货表)
字段:VENDER(供应商),DATE(进货日期),WEIGHT(进货量)

现在需要做一件事情:
统计当天每个供应商的进货总量,将其更新至对应的库存表的库存字段中

谢谢
...全文
154 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
buffalodong326 2008-11-14
  • 打赏
  • 举报
回复
MERGE INTO TBL_TODAYSTOCK T1
USING (SELECT VENDER,WEIGHT FROM TBL_INSTOCK WHERE DATE=sysdate) T2
ON ( T1.VENDER=T2.VENDER)
WHEN MATCHED THEN
UPDATE SET T1.STOCK = T2.WEIGHT
WHEN NOT MATCHED THEN
INSERT (VENDER,STOCK)(SELECT VENDER,WEIGHT FROM TBL_INSTOCK WHERE DATE=sysdate) ;

是这样写吧印象中
hawkliu333 2008-11-14
  • 打赏
  • 举报
回复
支持8楼,merge into效率也非常高,但要有一个中间表,merge into 需要表结构相同
hawkliu333 2008-11-14
  • 打赏
  • 举报
回复
支持,这个效率也非常高
chengtwn 2008-11-09
  • 打赏
  • 举报
回复
用触发器比较好,高效安全
KingNE 2008-11-08
  • 打赏
  • 举报
回复
呵呵
vc555 2008-11-08
  • 打赏
  • 举报
回复
可考虑用merge into .
因为可能某新供货商在库存表中不存在。
wangsong145 2008-11-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 bluery 的帖子:]
假如有两张表:
1.TBL_TODAYSTOCK(库存表)
字段:VENDER(供应商),STOCK(库存)
2.TBL_INSTOCK(进货表)
字段:VENDER(供应商),DATE(进货日期),WEIGHT(进货量)

现在需要做一件事情:
统计当天每个供应商的进货总量,将其更新至对应的库存表的库存字段中

谢谢
[/Quote]
UPDATE TBL_TODAYSTOCK SET STOCK=(SELECT SUM(WEIGHT) GROUP BY VENDER WHERE DATE=SYSDATE)
gisinfo 2008-11-06
  • 打赏
  • 举报
回复
update语句都不会

你还叫他用触发器
cosio 2008-11-06
  • 打赏
  • 举报
回复
你这种可以用触发器来解决!
DongloveRen 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 YY_MM_DD 的回复:]
SQL code
update TBL_TODAYSTOCK aa,
(select VENDER,DATE,count(WEIGHT) from TBL_INSTOCK group by VENDER,DATE) tt
set aa.STOCK=tt.STOCK
where aa.VENDER=tt.VENDER
[/Quote]
学习!
wh62592855 2008-11-05
  • 打赏
  • 举报
回复
不知道楼主的意思是用每天的进货量替代原来的库存还是加入到库存中
如果是后者
则改为set aa.stock=aa.stock+tt.total
YY_MM_DD 2008-11-05
  • 打赏
  • 举报
回复

update TBL_TODAYSTOCK aa,
(select VENDER,DATE,count(WEIGHT) toatl from TBL_INSTOCK group by VENDER,DATE) tt
set aa.STOCK=tt.total
where aa.VENDER=tt.VENDER

YY_MM_DD 2008-11-05
  • 打赏
  • 举报
回复

update TBL_TODAYSTOCK aa,
(select VENDER,DATE,count(WEIGHT) from TBL_INSTOCK group by VENDER,DATE) tt
set aa.STOCK=tt.STOCK
where aa.VENDER=tt.VENDER

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧