| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1940 人关注过本帖
标题:一个仓库管理的查询问题。
只看楼主 加入收藏
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
结帖率:73.47%
收藏
已结贴  问题点数:20 回复次数:12 
一个仓库管理的查询问题。
大体说,仓库管理就是商品或者货物的进出数据管理。一般是先有进库数据,然后有出库数据。但是也有例外,如,有多个仓库,我的A货物进货是在A库,但是B库此时有货销售。而此时B库没有进库的数据,虽然有nvl()函数把空值指定为0,但是由于B库完全没有A货物的进库数据,此时查询语句如何写才能让B库的库存数据为负。
搜索更多相关主题的帖子: 询问 仓库管理 指定 数据 语句 
2021-08-18 00:44
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:20 
用销售表,关联进货表或者库存表
select t1.商品编号,t1.商品名称,t1.销售数量,nvl(t2.库存数量,0)-t1.销售数量  as 采购数量 from 销售表 t1;
lefet join (select 商品编号,商品名称,库存数量 from 库存表) t2 on t1.商品编号=t2.商品编号
此时,采购数量,正数,表是不需要采购
2021-08-18 08:46
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
谢谢!
2021-08-18 22:31
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 2楼 mywisdom88
看了一下。感觉上还没有吃透。也可能和我的问题提的不太清楚有关。下面没把表结构附上。可否指点一下,看如何写查询语句。再次谢谢!
进库单号表字段:
单号id,单号,仓库名称,日期,交易对象,余略。
进库数据表字段:
单号id,商品代码,商品名称,数量,单价,  余略。
出库单号表字段:
单号id,单号,仓库名称,日期,交易对象,余略。
出库数据表字段:
单号id,商品代码,商品名称,数量,单价,余略。
商品表
商品编码,商品名称,停用(逻辑型),余略。
其中商品表停用字段是考虑到有些商品销售完毕后不会再进,所以不在日常处理中出现。
此时如何如果某个仓库没有进库数据而有出库数据的情况下,如何查询实时库存?

[此贴子已经被作者于2021-8-19 22:42编辑过]

2021-08-19 22:38
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 4楼 总是出错
我目前用的办法也简单,每一种新增加的商品在每一个仓库设置一个初始数据0。
2021-08-19 22:48
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
你目前有的表,
进库单号表(单号id,单号,仓库名称,日期,交易对象,余略)
进库数据表(单号id,商品代码,商品名称,数量,单价,余略)
出库单号表(单号id,单号,仓库名称,日期,交易对象,余略)
出库数据表(单号id,商品代码,商品名称,数量,单价,余略)
商品表(商品编码,商品名称,停用(逻辑型),余略)

你是怎样统计库存的?
1.有专门的库存表
每次进库时,增加库存;每次出库时,减少库存?
直接查询库存表数据?
2.没有库存表
每次查询库存数据时,都要统计,就是根据,进库数据表 - 出库数据表?
2021-08-20 08:39
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
回复 5楼 总是出错
*!* 某个仓库没有进库数据而有出库数据的情况下,如何查询实时库存?
*!* 根据出库数据,查询实际库存

*!* 出库数据表(单号id,商品代码,商品名称,数量,单价,余略)
*!* 进库数据表(单号id,商品代码,商品名称,数量,单价, 余略)

select t1.商品代码,nvl(t0.进库,0)-t1.出库 as 库存,t2.商品名称 from (select 商品代码,sum(数量) as 出库 from 出库数据表 group by 商品代码)t1 ;
 left join (select 商品代码,sum(数量) as 进库 from 进库数据表 group by 商品代码)t0 on t0.商品代码=t1.商品代码 ;
 left join (select 商品代码,商品名称 from 商品表)t2 on t2.商品代码=t1.商品代码
2021-08-20 08:57
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
其实,还有种情况,就是有进库,没出库,上面的查询,是查不到的,要改改

select t1.商品代码,nvl(t0.进库,0)-t1.出库 as 库存,t2.商品名称 from (select 商品代码,sum(数量) as 出库 from 出库数据表 group by 商品代码)t1 ;
 left join (select 商品代码,sum(数量) as 进库 from 进库数据表 group by 商品代码)t0 on t0.商品代码=t1.商品代码 ;
 left join (select 商品代码,商品名称 from 商品表)t2 on t2.商品代码=t1.商品代码 ;
union all ;
select 商品代码,sum(数量) as 库存,max(商品名称) 商品名称 from 进库数据表 where 商品代码 not in (select 商品代码 from 出库数据表) group by 商品代码

2021-08-20 09:23
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 6楼 mywisdom88
先谢谢你的回复。我没有库存表,直接用进货数据汇总减出货数据汇总得到实时和的库存表。你写的代码,我还要仔细看看,若有不懂的地方再向你请教。再次谢谢!
2021-08-21 05:10
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 7楼 mywisdom88
select t1.商品代码,nvl(t0.进库,0)-t1.出库 as 库存,t2.商品名称 from (select 商品代码,sum(数量) as 出库 from 出库数据表 group by 商品代码)t1 ;
 left join (select 商品代码,sum(数量) as 进库 from 进库数据表 group by 商品代码)t0 on t0.商品代码=t1.商品代码 ;
 left join (select 商品代码,商品名称 from 商品表)t2 on t2.商品代码=t1.商品代码
读了一遍,我的理解如下:
最终结果查询语句 "select t1.商品代码,nvl(t0.进库,0)-t1.出库 as 库存,t2.商品名称"为三个字段,其中 库存字段,来源于T0表和TI表汇总数量之差;
商品代码字段来源于T1表;商品名称字段来源于T2表。
t0表来源是查询语句"(select 商品代码,sum(数量) as 进库 from 进库数据表 group by 商品代码)t0"
t1表来源是查询语句"(select 商品代码,sum(数量) as 出库 from 出库数据表 group by 商品代码)t1"
t2表来源是查询语句"(select 商品代码,商品名称 from 商品表)t2
t1表和t0表为左连接,连接关键字是"商品代码"
t1表和t2表也是左连接,连接关键字是"商品代码",连接的目的是为了显示字段"商品名称"
t0表和t1表的汇总关键字为"商品代码"(分组)
不过我查了一下帮助文件,没有看到这种写法"(select 商品代码,sum(数量) as 出库 from 出库数据表 group by 商品代码)t1 "即在完整的查询语句的括号后写上表名。指定查询结果的语句我理解是这样的:
"select 进库数据表.商品代码,sum(进库数据表.数量) as 进库
  from:C:\进库数据表;
  group by 商品代码;
 INTO CURSOR t1"
又,我理解你写的这个查询语句应该是属于嵌套查询,按我能查到的资料来理解,每一个查询都应该是完整的。不知道是不是我理解错了,还是你写的语句有所省略?
再次谢谢!

[此贴子已经被作者于2021-9-5 18:09编辑过]

2021-08-21 10:21
快速回复:一个仓库管理的查询问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015644 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved