我想从物资入库表和物资出库表中统计出一段时间内的物资出库和入库数量,应该写语句?谢谢!!
查找出的记录应该是这样的,物资名称,型号规格,入库数量,出库数量。
如果这段时间没有出库或者入库,将该字段显示为0!
如果使用连接会丢失一部分数据,该怎么写!!?
谢谢大家了!!
问题点数:30、回复次数:10Top
1 楼txlicenhe(马可)回复于 2003-11-03 15:40:22 得分 5
Select a.物资名称,a.型号规格,IsNull(b.入库数量) as 入库数量,IsNull(c.出库数量,0) as 出库数量 from 物料主表 a
Left Join 入库资料表 b on a.物料代码 = b.物料代码
Left join 出库资料表 c on a.物料代码 = c.物料代码
where b.日期 between ...
and c.日期 between ...
Top
2 楼pengdali()回复于 2003-11-03 15:47:47 得分 5
select a.物资名称a.型号规格,isnull(b.入库数量,0) 入库数量,isnull(b.出库数量,0) 出库数量 from 物质表 a left join 出入库表 b on a.物资编号=b.物资编号Top
3 楼pengdali()回复于 2003-11-03 15:48:12 得分 0
关键是leftTop
4 楼tzhguan(辰雨)回复于 2003-11-03 15:56:02 得分 0
to txlicenhe(马可):
这样会使有这段时间内有出库而没有入库的物资信息丢失啊!Top
5 楼zjcxc(邹建)回复于 2003-11-03 16:15:12 得分 10
--用full join就行了.
select 物资名称=isnull(a.物资名称,b.物资名称)
,型号规格=isnull(a.型号规格,b.型号规格)
,入库数量=sum(isnull(a.入库数量,0))
,出库数量=sum(isnull(b.出库数量,0))
from 入库资料表 a full join 出库资料表 on a.物料代码 = b.物料代码
group by isnull(a.物资名称,b.物资名称),isnull(a.型号规格,b.型号规格)
Top
6 楼zjcxc(邹建)回复于 2003-11-03 16:17:13 得分 0
大力和马可的方法是针对你有物料表的情况,即所有的物料资料都单独存放在物料表中。Top
7 楼ivy_live521(妞妞)回复于 2003-11-03 18:11:17 得分 0
zjcxc(邹建)
出\入库记录肯定是多条
用full join 恐怕不太好吧Top
8 楼tlfangqing(东北大刀)回复于 2003-11-03 20:05:47 得分 5
绝对应该有物资基本表!!!!假设基本表为A,入库表为B,出库表为C,则可写成
SELECT A.物资编号,A.物资名
(SELECT ISNULL(SUM(入库数量),0) FROM B WHERE B.物资编号=A.物资编号 AND (日期限制)) AS 入库数量,
(SELECT ISNULL(SUM(出库数量),0) FROM C WHERE C.物资编号=A.物资编号 AND (日期限制)) AS 出库数量
FROM A
Top
9 楼tlfangqing(东北大刀)回复于 2003-11-03 20:06:35 得分 5
对了,忘加GROUP by A.物资编号,B.物资名了.Top
10 楼pengdali()回复于 2003-11-03 20:07:01 得分 0
楼主不把结构说清楚,别人乱猜是很难猜的Top
相关问题
- 关于出库入库
- struts入库出库乱码
- 100分,请问用sql语言怎样实现入库和出库的功能
- 请教: 要实现库存数量=入库数量--出库数量
- * oracle 中的批量入库语句在 sybase中有相应的语句提供此功能吗?*
- 如何查询入库表和出库表两个表中某物品的最新库存?
- 邹大侠 进销存出库单,入库单 ,代码表结构设计问题? 左右为难!
- 产品入库出库时是按照规格型号的(如1000ML、100KG),但是实际使用时,是按照KG度量的,问题是:
- 大家在做进销存时,商品零售价应放在商品基本信息表上还是放在入库,出库表上?
- "一个进销存系统,购买入库,出库,打折,赠货等都可以用触发器和存储过程来实现"(nkdzc语)--具体是如何使用触发器和存储过程? nkdzc请进




