标题:一个仓库管理的查询问题。
取消只看楼主
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
结帖率:73.47%
已结贴  问题点数:20 回复次数:6 
一个仓库管理的查询问题。
大体说,仓库管理就是商品或者货物的进出数据管理。一般是先有进库数据,然后有出库数据。但是也有例外,如,有多个仓库,我的A货物进货是在A库,但是B库此时有货销售。而此时B库没有进库的数据,虽然有nvl()函数把空值指定为0,但是由于B库完全没有A货物的进库数据,此时查询语句如何写才能让B库的库存数据为负。
搜索更多相关主题的帖子: 询问 仓库管理 指定 数据 语句 
2021-08-18 00:44
总是出错
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
总是出错
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
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
得分:0 
回复 11楼 mywisdom88
谢谢!
2022-01-30 21:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506560-1-1.html




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

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