当前位置:主页>仓库管理软件> 列表

两天内回答此问题送100分 找腾讯软件管理

财务软件版1楼: 我由一张表、两个查询(进库表数量汇总所得、出库表数量汇总所得)
问题:如何将此一个表、两个查询 生成如
【编号】 【进库总数】 【出库总数】
的查询,且进库、出库的时间段能动态指定。
该如何实现?请教各位大侠

2楼: 详细点,大家好帮你 如免费设备管理软件

3楼: 把你的查询都当表用,然后做2个左连接就可以了
至于你说的那个时间,没明白,请说详细点

4楼: 学习

5楼: 先谢谢各位热心人,两次左联接是不可以的,下面我详述问题:
【进库表】:
序号 材料编号 价格 数量 时间 单据号码
【出库表】:
序号 材料编号 数量 接受单位 时间 单据号码
【材料编码表】
材料编号 名称 规格型号
要求得到:
材料编号 名称 规格型号 进库总数 出库总数
其中 进库总数、出库总数是由进库表、出库表给定时间段内的数量sum得到。
求求各位了?

6楼: 具体点,不明白

财务软件版7楼: 如进销存之类的报表?
我个人觉得,还是分开来比较好,
如果,你有10来个表,连接起来速度很慢的,
我是这么做的,分开来一个个查询,然后全部写到stringgrid,
再在stringgrid中计算,排序。

8楼: 定义存储过程
我写过
有个关键问题要考虑:所有材料不一定都进过库,也不一定都出过库
要用连接+Update结合来做

9楼: 我的问题的关键是:如何根据两个查询得到第三个查询,TADOQUERY 可以吗?
这两个查询是动态生成的,即时间段是临时指定的,也就是要求出指定时间段内的进出总数

10楼: 和我做的一样
要有一个期初,一个期末日期
两个日期就是存储过程的参数

11楼: SiWeiLiuLang,你说得对,所有材料不一定都出过库或进过库,不过这个问题很好解决,
您是如何解决我的问题的,我用的是ACCESS数据库

12楼: 我在SQL里定义存储过程
定义两个日期参数
然后在程序里调用过程就可以了 如腾讯软件管理

13楼: SiWeiLiuLang,您能具体点吗,我是菜鸟

财务软件版14楼: 解决方法用SQL存储过程:
输入两个时间参数决定查询的开始时间和结束时间
create procedure 汇总
@begintime datetime;
@endtime datetime;
as
select a.材料编号,a.进货总数,b.出库总数,c.名称,c.规格型号 from
(select 材料编号,sum(数量) as 进货总数 from 进货表 where 时间>@begintime and 时间<@endtime group by 材料编号 ) as a
left join
(select 材料编号,sum(数量) as 出库总数 from 出库表 where 时间>@begintime and 时间<@endtime group by 材料编号) as b
on
a.材料编号=b.材料编号
left join 材料表 as c on a.材料编号=c.材料编号

go

15楼: CREATE PROCEDURE My_CRK
@QSRQ datetime, @ZZRQ datetime--定义参数:期初日期,期末日期
AS
begin
create table #T(材料编号 varchar(20),名称 varchar(20),规格型号 varchar(20),
进库总数 float,出库总数 float)

insert into #T 材料编号,名称,规格型号
select 材料编号,名称,规格型号,0,0
from 材料编码表

update #T set 进库总数=(select sum(A.数量)
from 进库表 A
where #T.材料编号=A.材料编号 and A.时间 > @QSRQ and A.时间<= @ZZRQ)--回填进库

update #T set 出库总数=(select sum(A.SL)
from 出库表 A
where #T.材料编号=A.材料编号
and A.时间 > @QSRQ and A.时间 <= @ZZRQ)--回填出库

select * from #T

drop table #T
end
GO

16楼: 多人接受答案了。