最近要用oracle xe写一个物品的跟踪系统,表现的内容包括商品信息,销售、退货、补货和结余的数量,周期是天,也就是可以查看到任何一天的以上几个数据。也要做以上几个数据在某时间段的汇总。比如说:
物品 补货 销售 退货 结余 日期
abc 10 5 0 23 2008-09-03
而第二天,也就是2008-09-04
物品 参数 补货 销售 退货 结余 日期
abc 12 8 1 28 2008-09-04商品是基本保持不变,但是商品的数量会有时间版本。我现在设置了两个表:
product:
id name value
record:
id product_id type type_amount date然后使用sql语句得到报表:
select "PRODUCT"."ID" as "ID",
"PRODUCT"."NAME" as "物品",
"PRODUCT"."VALUE" as "参数",
(select sum(type_amount) from RECORD where date >= START_DATE and date <= END_DATE and type = '加入') as "补货",
(select sum(type_amount) from RECORD where date >= START_DATE and date <= END_DATE and type = '销售') as "销售",
(select sum(type_amount) from RECORD where date >= START_DATE and date <= END_DATE and type = '退货') as "退货"
from "LTS_PRODUCT"而 结余= 前一天结余 + 补货 - 销售 + 退货我曾想添加一个表来保存 结余 的每天数量,但这样在操作上有些不便,特别是放假的时候。现在想请教大家如何来处理在时间上的纵深的问题。
物品 补货 销售 退货 结余 日期
abc 10 5 0 23 2008-09-03
而第二天,也就是2008-09-04
物品 参数 补货 销售 退货 结余 日期
abc 12 8 1 28 2008-09-04商品是基本保持不变,但是商品的数量会有时间版本。我现在设置了两个表:
product:
id name value
record:
id product_id type type_amount date然后使用sql语句得到报表:
select "PRODUCT"."ID" as "ID",
"PRODUCT"."NAME" as "物品",
"PRODUCT"."VALUE" as "参数",
(select sum(type_amount) from RECORD where date >= START_DATE and date <= END_DATE and type = '加入') as "补货",
(select sum(type_amount) from RECORD where date >= START_DATE and date <= END_DATE and type = '销售') as "销售",
(select sum(type_amount) from RECORD where date >= START_DATE and date <= END_DATE and type = '退货') as "退货"
from "LTS_PRODUCT"而 结余= 前一天结余 + 补货 - 销售 + 退货我曾想添加一个表来保存 结余 的每天数量,但这样在操作上有些不便,特别是放假的时候。现在想请教大家如何来处理在时间上的纵深的问题。
解决方案 »
- oracle里面怎么实现类似事件探测器的功能,我想查询某句SQL是否执行
- 关于随机时间 插入的问题。
- PL/SQL中用select ...for update 会提示查询数据无法更新
- 请教一个oracle的cursor的格式问题?
- oracle 10g dmp 报错
- 启动失败,ORA-01122: 数据库文件 2 验证失败_急,请高手
- 在linux上安装Oracle9i
- insert...select 写法!急!!
- 配置网络数据库,在一台机器上建了一个数据库,想在另一台机器上访问这个数据库?
- 更新历史标志的触发器
- function中默认Boolean参数的问题
- Oracle中smtp送信的from乱码问题
2.增加一触发器:当增减物品时,判断date若与以前日期不同时,插入若干条物品结余记录至"物品结余表"。