第九软件网:打造最安全放心的免费绿色软件下载站!
热门搜索:

Case语句在进销存系统的应用

2008-04-24来源:http://www.d9soft.com
用手机看

扫描二维码随身看资讯

1. 在手机上细细品读~
2. 分享给您的微信好友或朋友圈~
问:请教专家一个问题,我想写一个汇总配件出入库明细的SQL语句,以便对库存中的某个配件进行出入库的汇总。以下是需求明细:  配件编号:0001 配件名称:发动机 期初库存:100 入库一次后
问:请教专家一个问题,我想写一个汇总配件出入库明细的SQL语句,以便对库存中的某个配件进行出入库的汇总。以下是需求明细: 
配件编号:0001
配件名称:发动机
期初库存:100
入库一次后,有一条入库记录
配件编号       入库数量
0001             10
出库一次后,有一条出库记录
配件编号       出库库数量
0001              3
现在要汇总出这个配件的出入库明细,样子要这样
配件编号   类别    出/入库数    结余库存
0001        期初     100              100
0001        入库      10              110
0001        出库       3               107
      答:可以先对3张表做一个union的视图,然后使用case判断,根据类别 类别算出结余库存
select id as  商品 编码,
       name as 商品名称,
       class 发出类别,
       num as 结余数量 
       from mm 
union
select mn.ID as  商品编码,
       mn.name as 商品名称,
       mn.class 发出类别,
      (mm.num+mn.num) as 结余数量 
       from mn,mm
union
       select nn.id as 商品编码,
       nn.name as 商品名称,
       nn.class 发出类别,
       (mm.num+mn.num-nn.num) as 结余数量 
       from mn,nn,mm 
当然,这是普遍采用的办法,也可以用Case来判断类别后来进行加减运算。
mm,mn,nn三个表的结构都是一样的
ID     INT         编码
Name   Varchar(20) 名称
Num    int         发生数量
Class  Varchar(10) 类别
 
      表中才一条记录,在多记录时可以用where筛选一下。就是生成后不能按照上面的顺序排列.

客官,请随便说两句

热门文章

qiangui777

百度360搜索搜狗搜索