一张销售表sale,其中有3列 分别为:商品名,日期,销量。 3月31号商品A销售11吨 结存库存量为100吨,4月1日 销售10吨、3日销售20吨、19日销售2吨。
通过查询的结果为:
商品名, 日期, 销量 库存量
A 3月31号 11 100
A 4月1号 10 90
A 4月3号 20 70
A 4月19号 2 68 oracle有现成的分析函数吗? 或用存储过程该如何实现 ?
通过查询的结果为:
商品名, 日期, 销量 库存量
A 3月31号 11 100
A 4月1号 10 90
A 4月3号 20 70
A 4月19号 2 68 oracle有现成的分析函数吗? 或用存储过程该如何实现 ?
解决方案 »
- 学oracleDBA是不是要从数据库开发做起呀?
- 问一个sql的问题
- 如何通过 dbms_job 生成 “每周 2,3,4,5,6 凌晨 1~4点,每半小时执行 SP:test_SP ”的任务 ?
- 一个PL/SQL Developer的简单问题,在线急等
- 更改SQL语句Oracle必须重启才升效???
- 我的触发器编译通过,为何却无法成功?
- 如何从备份的数据中向一个既有数据表中恢复数据?
- 为什么没存到库里去?
- 急!oracleservice启动不了!
- 我需要连接另一个服务器上的oracle数据库该怎么弄呢?
- oracle forms中的并发程序(concurrent program)是什么样的一个概念
- 存储过程优化
SELECT A.*,100-(SELECT SUM(SALE_NUM) FROM SALE B WHERE B.SALE_DATE<=A.SALE_DATE) FROM SALE A;
你应该有两张表:库存表,销售表。
库存表
商品名,库存量
销售表
商品名,销售日期,销售量
你还应该建立另外一张表:
销售信息:
商品名,销售日期,销售量,库存量
--
用触发器来实现:
1.每次更新销售表,都向销售信息表中添加商品销售信息
销售信息表:库存量=库存表.库存量-销售量
2.每次更新销售表,就立即更新库存表:
库存表:库存量=old.库存量-销售量重复以上触发,一直到库存表中数量减少到一定限度,比如库存量<100
你的另外一个触发器就会向订单表orders中添加需要订购的商品信息了.