我想根据日期间隔比较来自Access 2010数据库的数据。示例我有来自各种采购订单的项目,我想维护这些项目交付到仓库的历史记录。因此,例如,我的采购订单要求提供数量为10的物料,并且可以部分以多次交货方式交付,并且我想知道此交货在日期间隔内是如何变化的。要填写日期字段,使用的标准如下所示:如果项目在QtyPending字段中有更新,我使用booelan字段复制当前行并将其停用,创建一个新条目,并更新QtyPending字段以更新当前日期活动记录是项目的实际状态。所以我有一个包含有关这些项目就像
PO POItem QtyPending Date Active 450000/09/2014 FALSE 450000/09/2014 TRUE 4500000122 30 5 03/09/2014 FALSE 4500000122 30 1 04/09/2014 TRUE
有了这个例子中的信息表,对于第一个项目,就意味着,从日期01/09至04/09的QtyPending场没有遭受一个变种,这意味着供应商没有交付给我,但从01/09到05/08,他给了我一个2的材料的数量。第二个,从2009年3月3日到2009年4月,供应商向我交付了4件材料。所以,如果我要使得从2014年2月9日的报告查询2014年4月9日,预期输出是这样的:
PO POItem QtyDelivered 450000 4500000122 30 4
而从31/08 /报告2014年2014年10月9日,将有这样的输出
PO POItem QtyDelivered 450000 4500000122 30 4
我不跟查询上来,使这个报告。谁能帮我?
灿日期跨度参加两个以上的记录? “Active”字段有什么作用? (更多的问题可以参考...这不是很清楚!) – Smandoli 2014-09-25 20:15:07
您的要求听起来非常类似于以前的问题[这里](http://stackoverflow.com/q/26046828/2144390)。看看答案,看看他们中的一个能否帮助你。 ([我的答案](http://stackoverflow.com/a/21033184/2144390)显示了如何使用* self-join *来避免记录集循环。) – 2014-09-25 20:20:57
Smandoli,活动字段,如果FALSE,它告诉记录仅存储用于历史目的以查询项目的过去状态。而且,如果active为TRUE,意味着项目的当前状态,所以如果我想查询项目的实际状态,我需要做的唯一事情就是WHERE Active = TRUE – 2014-09-26 11:55:17