根据出库、入库表,实现对库存的信息查询

数据库:mysql

要求:多个仓库、多个产品

表:1.入库凭证表 t_rkpz

  2.入库明细表 t_rkpzmx

  3.出库凭证表 t_ckpz

  4.出库凭证表 t_ckpzmx

  说明:两对主从表   

     [(主表:入库凭证表 t_rkpz,主键:rkbh)(从表:入库明细表 t_rkpzmx ,外键:rkbh)]

       [(主表:出库凭证表 t_ckpz ,主键:rkbh)(从表:出库凭证表 t_ckpzmx ,外键:rkbh)]

建表 :

  字段说明:入库编号、入库日期、仓库名称、仓库管理员

  

  字段说明:所属入库编号、商品名称、商品数量、单位、备注

  

  字段说明:出库编号、出库日期、仓库名称、仓库管理员

  

  字段说明:所属入库编号、商品名称、商品数量、单位、备注

  

那么在产品进行入库,出库信息录入之后。如何对不同仓库、不同商品库存信息进行查询?

解决思路1:库存=入库-出库,在数据库中建立视图,实现分仓库、分商品的库存统计

特点:不需要建立库存表,但是需要在数据库中先建立好视图。

实现:

  1)对入库记录产生的商品库存进行统计 v_rkkc

  根据仓库名称(b.ckmc)和产品名称(a.goods) 结果集进行分组统计查询

  select `b`.`ckmc` AS `ckmc`,`a`.`units` AS `units`,`a`.`goods` AS `goods`,sum(`a`.`sl`) AS `zsl`
  from (`t_rkpzmx` `a` left join `t_rkpz` `b` on((`a`.`rkbh` = `b`.`rkbh`)))
  group by `b`.`ckmc`,`a`.`goods`

  2)对出库记录产生的商品库存进行统计 v_ckkc

  同入库记录,根据仓库名称(c.ckmc)和产品名称(d.goods) 结果集进行分组统计查询

  select `c`.`ckmc` AS `ckckmc`,`d`.`goods` AS `ckgoods`,sum(`d`.`sl`) AS `ckzsl`
  from (`t_ckpzmx` `d` left join `t_ckpz` `c` on((`c`.`ckpz` = `d`.`ckbh`)))
  group by `c`.`ckmc`,`d`.`goods`

  3)库存统计数据 = 入库库存统计数据 - 出库库存统计数据(v_kc = v_rkkc - v_ckkc)

  select `b`.`ckmc` AS `ckmc`,`b`.`goods` AS `goods`,`b`.`units` AS `units`,`b`.`zsl` AS `zsl`,`a`.`ckzsl` AS `ckzsl`,(`b`.`zsl` - `a`.`ckzsl`) AS `kc`
  from (`v_ckkc` `a` join `v_rkkc` `b` on(((`a`.`ckckmc` = `b`.`ckmc`) and (`a`.`ckgoods` = `b`.`goods`))))

解决思路2:建立商品库存表。在入库、出库的同时,对相应的商品库存量进行更改

特点:库存表的建立,使得逻辑思维更加清晰。但是需要在入库、出库操作(增、删、改、查)的时候进行仓库库存数量的调整。

   极大的增加了代码量及代码书写难度(同时操作多个表的数据,入库、出库的任何一个操作,都要相应的调整库存。需要多次开启数据库事务管理,保证多表操作的同时进行。)

时间: 2024-07-29 21:29:43

根据出库、入库表,实现对库存的信息查询的相关文章

oracle中的查询语句(关于出库入库信息表,明细表,把捆包箱表,单位信息表的集中查询)

--查出所有现金中心的单位IDwith AllUnitas(select t.ORGANIZATIONID orgid,t.parentidfrom CDMS_ORGANIZATION t where T.CATEGORY = 4start with t.organizationid = '05e85693-14b0-4582-8063-8fbde85371f0' connect by t.parentid = PRIOR t.organizationid), N_instockas(-- in

获取SQLSERVER所有库 所有表 所有列 所有字段信息

最近想起来做一个项目代码生成器,直接生成底层代码.. 这免不了要先行读取数据库已有的信息.. 废话不多说..开整.. SELECT NAME FROM MASTER..SYSDATABASES --读取所有库 上边语句只得到单表单列..里边就全是数据库的名字.. 然后选择数据库后..按此数据库连接重新链接数据库..执行以下语句 SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' --读取所有表 上边语句依然是得到的单表单列,存储的值全不是当前选择的数据库中的表

SAP MM 并非奇怪现象之MB5B报表查不到某一笔出库记录?

物料号:1301002696 工厂代码:2160 MB5B,如下查询条件, 查询结果中,期初与期末库存数量都是0,期间的出库入库数量都是0.事实上该物料期初应该是有库存的.并且我用MB51相同时间段查询结果, 明明这期间有一笔货物移动,为什么MB5B里不认?初看这个结果,笔者觉得好奇怪.以严谨著称的SAP系统,不可能出这种低级错误的.现在出现这个奇怪结果,引起了我的好奇心. 经查,这笔货物移动是移动类型Z24 加特殊移动标记B, 在MB5B里换一种查询方法,查特殊库存B,如下图示: 报表结果里,

MySQL_产品昨日库存与历史入库历史出库成本_20161124

产品昨日库存与历史入库历史出库成本 SELECT d.ID,a.*,e.昨日订单额 ,b.昨天入库额,b.历史2天,b.历史3天,b.历史4天,b.历史5天,b.历史6天,b.历史7天,b.历史8天,b.历史9天,b.历史10天 ,b.历史11天,b.历史12天,b.历史13天,b.历史14天,b.历史15天,b.历史16天,b.历史17天,b.历史18天,b.历史19天 ,b.历史20天,b.历史21天,b.历史22天,b.历史23天,b.历史24天,b.历史25天,b.历史26天,b.历史2

php解析入库跟出库

转载:http://www.jb51.net/article/39092.htm 数据放入数据库和取出来显示在页面需要注意什么 入库时 $str=addslashes($str); $sql=\"insert into `tab` (`content`) values(\'$str\')\"; 出库时 $str=stripslashes($str); 显示时 $str=htmlspecialchars(nl2br($str)) ; <?//--标题,名字等字段入库处理(去首尾空格

使用Jasperreporter生成入库出库单打印等报表操作

项目需要打印报表:就是那种生成入库单,出库单等的操作.使用到的技术:使用iReport Designer5.1.0设计报表,使用struts2+jasperreporter生成最终填充数据的报表 首先看一下效果图 一.使用iReport Designer 设计报表 1.安装iReport Designer,过程比较简单.需要强调一下,5.1.0版本不支持jdk8,我又重新装了jdk7.然后在iReport-5.1.0\etc\ireport.conf下配置一下jdkhome,如下图所示为我的配置

练习1:python设计停车入库出库系统

前言: 最近在某个测试群看到有人抛出了一个面试题.为了提升自己的编程能力,我也尝试的用python去写了一下. 语言:python,数据库:sqlite  .菜鸟来袭,只是基本实现功能,可能没有考虑太多的其他因素,各位大神莫见笑! 主要学习渠道(基础入门): https://www.runoob.com/sqlite/sqlite-create-table.html https://www.runoob.com/python3/python3-basic-syntax.html 题目:设计一个简

现整理CardBase出库与OwnerCard入库核对,请按以下步骤操作核对。

a.[CardBase出库]登录172.16.23.192 CardBase数据库 用户名cardbase_reader 密码向张术安口头要 b.执行,红字时间替换,为核对日: select cardflag ,cardmoney, count(*) from cardbase with( nolock) where state =1 and UseTime between '2015-8-16' and '2015-8-17' and cardflag in ('chinaszx', 'chi

分页优化+表锁和库存优化+数据库的备份和导入

一.分页优化技术 代码参看: php/classic.php 把50331651记录进行分页,每页显示2条记录,于是我们用传统php编码方式,编写分页代码如下: 上传到/var/www/html下进行测试,结果如下: 如果访问第1页和第4页,返回语句: 使用explain执行计划查询比较靠前的页数,发觉速度很快因为可以使用上索引: 如果访问第4100000页,返回语句: 使用explain分析结果如下: 发觉这时如果分页到了中间的页数,这时我们既需要排序又要分页检索数据的时候,就会出现Using