以文本方式查看主题

-  搭建论坛  (http://bbs.diylsoft.com:8118/starforum/index.asp)
--  数据库交流  (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=6)
----  再次请教SQL语句,希望能得到回答,多谢了  (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=6&id=27743)

--  作者:wenti
--  发布时间:2009-10-16 11:18:41
--  再次请教SQL语句,希望能得到回答,多谢了
请教一个查询语句

有任意两个表,其中有一个相同字段,举例如下

表1: 名称,入库数量

表2: 名称,销售数量

表3 名称 ,退货数量

表4 名称,报废数量

现在想按名称做一个统计查询表3,查询后的结果格式为, 名称 库存数量

比如:表1 名称 ,入库数量

苹果 20

苹果 30

黄瓜 40

表2 ,名称 销售数量

苹果 10

苹果 5

表3 ……

表4……

查询后统计结果为 表3 名称 库存数量

苹果

黄瓜

库存数量=入库数量-销售数量-报废数量-退货数量

求这一句SQL 查询语句 ,谢谢!


--  作者:引力波
--  发布时间:2009-10-16 11:55:32
--  

先对四个表分别进行分组统计,并将统计结果存如临时表中,最后将四个临时表的结果再做统计.

分组统计、保存用下面的语句:如对“表1”统计

insert into 临时表1 select 名称, sum(入库数量) from 表1 group by 名称

最后合并统计用下面的语句:

select 名称, 库存数量(A.入库数量-B.销售数量-C.报废数量-D.退货数量) from 临时表1 A,临时表2 B,临时表3 C,临时表4 D


--  作者:wenti
--  发布时间:2009-10-16 12:36:14
--  

万分感谢引力波的帮助,谢谢了,我试下

,如果要再一次查询,那么临时表里的数据还要删除吗,是不是自动清空的呢
insert into 临时表1 select 名称, sum(入库数量) from 表1 group by 名称

如果再次查询需要删除临时表的数据,那么如果数据很多的时候,删除数据就需要很长时间了

如果解决查询时的速度问题呢




--  作者:引力波
--  发布时间:2009-10-16 13:58:49
--  

补充一下,后面增加一个条件控制:

select 名称, 库存数量(A.入库数量-B.销售数量-C.报废数量-D.退货数量) from 临时表1 A,临时表2 B,临时表3 C,临时表4 D where A.名称=B.名称=C.名称=D.名称

当然,每次都需要删除临时表中的记录,采用SQL命令这个过程对速度影响不大。


--  作者:wenti
--  发布时间:2009-10-16 15:53:46
--  
能否先在access里,先做个查询呢,然后ADO查询构建,直接调取access里的查询表,不知道ADO查询构建是否能连接到access查询的表,这个查询速度都不到1秒,数据再多都不受影响
--  作者:引力波
--  发布时间:2009-10-16 16:34:25
--  
ADO查询构件必须与数据库连接,前面的SQL命令本身就是执行查询、统计事件,不需要你说的这些过程。