Office中国论坛/Access中国论坛

标题: 如何在同一查询中比较不同时间相同地点物品的数量 [打印本页]

作者: gokong    时间: 2006-1-10 18:02
标题: 如何在同一查询中比较不同时间相同地点物品的数量
现有一简单数据库,用于查询动物的存栏情况.每一只动物均有唯一的ID,存于"动物明细2"中,由于动物经常调动,因此又设了"变动动物"表,说明每一只动物的变动栏舍情况,其中有变动时间和变动后栏舍ID.每一只动物如果有变动,则输入新的变动时间和变动后栏舍ID,如果没有变动,则不用输入.
我建立了查询,即"月初查询"和"月末查询".两个查询其实是一样的,可以查出到输入时间为止的动物存栏数量.现要求建立一个查询,同时显示同一栏舍不同时间的动物数量.不知如何办到.


非常感谢.

[attach]15242[/attach]

作者: 一点通    时间: 2006-1-10 18:14
你的问题已经发过很多次了,也有了不少的回复,如果想得到正确的回复,请用图表的方法表示要得到的最终结果,这样别人才会更准确地回复你的
作者: zyz218    时间: 2006-1-10 21:00
建议二个表,一个动物基本资料表,一个变动情况表,基本资料表永远都是动物最新资料,变动情况记录到变动情况表中去,建一个变动窗华管理变动与记录
作者: gokong    时间: 2006-1-11 17:51
不好意思,我想实现的查询如下图所示:[attach]15278[/attach]

作者: gokong    时间: 2006-1-12 00:37
有没有什么好办法啊?
作者: 一点通    时间: 2006-1-12 00:51
你这个例子应该看一下进销存例子,方法是差不多的
作者: gokong    时间: 2006-1-12 17:33
但是进销存一般是物品出仓后不用再跟踪去到哪里.而我想实现的数据库就好像包括几十个仓库,仓库之间互相调动物品,然后在一个查询中查询不同时间各仓库的库存数量.

本人设计了一个查询如下:

SELECT 班组.班组, 动物名称.中文名, Count([开始查询(动物变动情况)].变动后栏舍ID) AS 期初数, Count([结束查询(动物变动情况)].变动后栏舍ID) AS 期末数
FROM [开始查询(动物变动情况)], [结束查询(动物变动情况)], 班组 INNER JOIN 栏舍 ON 班组.班组ID = 栏舍.班组ID, 动物名称 INNER JOIN 动物明细2 ON 动物名称.动物名称ID = 动物明细2.动物名称ID
GROUP BY 班组.班组, 动物名称.中文名;


不知添加一些sql语言建立不同表之间的联系是否可以实现想要达到的功能.
作者: gokong    时间: 2006-1-13 23:22
有没有什么好办法啊?
作者: gokong    时间: 2006-1-13 23:28
本人设计了如下查询,也不法工作,请各位高手指教.

SELECT 班组.班组, 栏舍.栏舍名称, 动物名称.中文名, (SELECT COUNT([变动动物].[变动动物ID]) AS TMP FROM [变动动物] WHERE ([变动动物].变动动物ID=[开始子查询].变动动物ID之MAX) GROUP BY [变动动物ID]) AS 月初, (SELECT COUNT([变动动物].[变动动物ID]) AS TMP2 FROM [变动动物] WHERE ([变动动物].变动动物ID=[结束子查询].变动动物ID之MAX) GROUP BY [变动动物ID]) AS 月末
FROM 结束子查询 INNER JOIN (开始子查询 INNER JOIN ((班组 INNER JOIN 栏舍 ON 班组.班组ID = 栏舍.班组ID) INNER JOIN ((动物名称 INNER JOIN 动物明细2 ON 动物名称.动物名称ID = 动物明细2.动物名称ID) INNER JOIN 变动动物 ON 动物明细2.动物明细ID = 变动动物.动物明细ID) ON 栏舍.栏舍ID = 变动动物.变动后栏舍ID) ON 开始子查询.变动动物ID之Max = 变动动物.变动动物ID) ON 结束子查询.变动动物ID之Max = 变动动物.变动动物ID;


[attach]15340[/attach]

作者: gokong    时间: 2006-1-14 17:15
有没有什么好办法啊?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3