一个很烦人的统计问题(200分)

  • 主题发起人 主题发起人 anxiaodong
  • 开始时间 开始时间
A

anxiaodong

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在用DELPHI做一个库房管理的程序,现在正在做查询统计。出了点儿
问题,需指教。有三个表:入库表、出库表和库存表,出入库都是按照类
别、名称、规格和产地的不同分成不同的记录的。现在要对这三个表进行
统计查询,最后出来这样的表:
类别 名称 规格 产地 入库数量 金额 出库数量 金额 库存数量 金额
还有这样的表:
类别 入库数量 金额 出库数量 金额 库存数量 金额
谢谢
 
是什么数据库?如果是文件型数据库,那么可以在本地建一个
临时数据库解决这个问题。
如果是SQL数据库,那么写一个存储过程返回一个结果集(实际上
是内存临时表)的方法就可以了
你这个统计并不算难,花点力气看看SQL就可以了
 
我觉得很麻烦的!SQL语句很难写的。要对三个库分别统计求和,然后再连起来!
 
关键是你用的什么数据库
 
Dick的回答虽然简单,但一针见血。
你的库房管理与我以前作的一个库存管理几乎一样,
当时,我用了TTable 来解决(主要图方便、快捷)。
…………
你没有说明数据库的主键是什么?
我用日期、时间、类别和规格,这样
就可,唯一区别数据。主键很关键。
建立主键后,统计就迎刃而解了……
提示一下:在Sybase数据库中,有一个Id数据类型,
可以唯一的区别,这样,用它来做主键,更方便!
假设,Id是入库表、出库表和库存表三表中设备
的主键(他是时间与设备类型的结合数据),
应该还有很多问题,但你先做一部分吧。
最好,把三表的数据结构也贴出来,
我做一个概念模型分析,
尽量做到第三范式
 
应该不难,
但一定要把数据抽象出来!
 
用sql语句, into到临时表即可,再从临时表中取数据。
 
应该先把品名、规格、产地、类别抽出来放进一个产品表,加一个字段产品编号。
入出库表只要保存产品编号、时间、数量等信息。查询时分别按产品编号汇总出入库表,再同产品表、库存表连接。
 
我的服务器端为WindowsNT4.0+Oracle8.0.4,客户端用的是windows95+DELPHI4.0

入库表:
LBBH (原料类别编号) CHAR(2)
MC (名称) CHAR(20)
XH (型号) CHAR(20)
SL (数量) NUMBER(12,2)
DJ (单价) NUMBER(12,4)
JE (金额) NUMBER(12,2)
CD (产地) CHAR(20)
JSR (经手人) CHAR(8)
LSH (流水号) NUMBER(12)
RQ (日期) DATE

出库表:
DDH (订单号) CHAR(10)
BZBH (班组编号) CHAR(2)
LBBH (原料类别编号) CHAR(2)
MC (名称) CHAR(20)
XH (型号) CHAR(20)
SL (数量) NUMBER(12,2)
DJ (单价) NUMBER(12,4)
JE (金额) NUMBER(12,2)
CD (产地) CHAR(20)
JSR (经手人) CHAR(8)
LSH (流水号) NUMBER(12)
RQ (日期) DATE

库存表:
LBBH (原料类别编号) CHAR(2)
BH (编号) CHAR(4)
MC (名称) CHAR(20)
XH (型号) CHAR(20)
SL (数量) NUMBER(12,2)
DJ (单价) NUMBER(12,4)
JE (金额) NUMBER(12,2)
CD (产地) CHAR(20)
HKCL (最高库存量) NUMBER(12,2)
LKCL (最低库存量) NUMBER(12,2)

另外还有类别表、班组表、订单表。

入库时:按照类别、名称、型号和产地的不同更新库存表中的同类记录,
IF 库存表中存在这样的记录 THEN
库存单价=(入库金额+库存金额)/(入库数量+库存数量)
库存量=入库数量+原库存数量
ELSE
在库存表中增加一条记录
出库时:同样按照类别、名称、型号和产地的不同更新库存表中的同类记录。

一般每天入库笔数约为40--60
一般每天出库笔数约为100--150

需要得到一段时间内各类原料的(类别+名称+型号+产地{为一类})入库量、
金额、出库量、金额、库存量、金额
月底得到按类别编号区分各类原料的入库量、金额、出库量、金额、库存量、金额

 
希望你快些给我答案
 
先产生各个表的统计view, 再利用它写一个select语句(等值连接)即可
 
三个表的表名拿来先,我已经写好了,就缺它.
 
哇,我新接的项目就是开发仓库管理程序,现在还没开始干.

你的问题要综合触发器和存储过程来做.
作一个插入触发器,在每条数据入表时根据要求计算.
最后出的表应该是从出入库综合的表,做个存储过程从出入各表中取数,
同时定义此综合表的插入触发器,按要求取数.

不过是小问题,很好解决的.
 
入库表名:YLRK(原料入库)
出库表名:YLCK
库存表名:YLKC
 
多人接受答案了。
 
后退
顶部