Office中国论坛/Access中国论坛

标题: 一个比较特别的查询问题(内有示例数据库),请您指教!! [打印本页]

作者: youshanzx    时间: 2004-3-22 02:03
标题: 一个比较特别的查询问题(内有示例数据库),请您指教!!
现有一个产品维修数据库,希望作以下查询:
某一产品可能有多次维修(产品编号和产品是唯一对应的),希望查出所有重复维修的产品,且满足条件:1.只要每种产品最后的两次维修,2.“最后一次维修日期距上一次维修日期一年以内(365日)”。不知道如何实现,请大侠指点,非常感谢!!!!
[attach]3985[/attach]
作者: youshanzx    时间: 2004-3-22 06:40
对不起,有一点我没有说清楚,即查询结果仍需按原表结构显示。也就是说,查询后仍需要看到原来表中各个子段的内容。
对应示例数据库,查询后结果应显示如下:
ID 产品名称 产品编号 微机 维修日期  发货单位    出厂日期
3 D16    10   无   03-3-20  电能公司
4 D16    10   无   04-1-15  电能公司
5 D16    11   无   03-6-3  电表公司
6 D16    11   无   04-3-19  电表公司
其它数据均不符合条件。

我的想法是:首先建一查询,把“产品编号”字段所有重复的记录查出(很好做到),然后按日期比较每一产品编号的最后两次记录,如日期相减在一年内(365天),则该两条记录符合条件。      但我作不成,大侠请帮忙!!!!
请指教。 盼望中~~~~~~~~

[此贴子已经被作者于2004-3-21 22:50:35编辑过]


作者: LYP6160    时间: 2004-3-22 07:56
最后两个数据是可以实现的,但我要问的是为什么一定要查询最后两次的数据,能例出更多的数据不是更好吗,只是顺序的问题
作者: LYP6160    时间: 2004-3-22 08:16
用VBA可以做到这个结果,但你一定会问如何做?,自己慢慢学习吧
作者: youshanzx    时间: 2004-3-22 20:43
只要最后两次记录是因为我们每月都对重复维修情况进行统计,首先查询当月维修,然后再做上述查询,故只有最后一次是新记录,留两次记录是为了进行比较。
我的确不会做。请那为高手帮忙,非常感谢!!!!
作者: 土豆    时间: 2004-3-23 04:21
请参考相应的SQL帮助
SELECT TOP
ORDER BY DESC
HAVING
WHERE




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