【发布时间】:2017-12-06 14:17:55
【问题描述】:
我正在尝试按以下方式对我的数据进行分组:州、产品、版本、LG_SG、面积和面积因子。然后,我想将最短开始日期和最长结束日期附加到记录中。我有一个差距和岛屿问题。如果您查看数据,.8428 显示在两个不按时间顺序排列的块中。如何在 Access 中解决此问题?
这是我目前的数据。
state start_date end_date product edition lg_sg area area_factor
IL 10/1/2010 11/1/2010 PPO 6 SG 1 0.86
IL 11/1/2010 12/1/2010 PPO 6 SG 1 0.86
IL 12/1/2010 1/1/2011 PPO 6 SG 1 0.86
IL 1/1/2011 2/1/2011 PPO 6 SG 1 0.8428
IL 2/1/2011 3/1/2011 PPO 6 SG 1 0.8428
IL 3/1/2011 4/1/2011 PPO 6 SG 1 0.8428
IL 4/1/2011 5/1/2011 PPO 6 SG 1 0.8428
IL 5/1/2011 6/1/2011 PPO 6 SG 1 0.8428
IL 6/1/2011 7/1/2011 PPO 6 SG 1 0.8428
IL 7/1/2011 8/1/2011 PPO 6 SG 1 0.8428
IL 8/1/2011 9/1/2011 PPO 6 SG 1 0.8428
IL 9/1/2011 10/1/2011 PPO 6 SG 1 0.8428
IL 10/1/2011 11/1/2011 PPO 6 SG 1 0.825944
IL 11/1/2011 12/1/2011 PPO 6 SG 1 0.825944
IL 12/1/2011 1/1/2012 PPO 6 SG 1 0.825944
IL 1/1/2012 2/1/2012 PPO 6 SG 1 0.8428
IL 2/1/2012 3/1/2012 PPO 6 SG 1 0.8428
IL 3/1/2012 4/1/2012 PPO 6 SG 1 0.8428
IL 4/1/2012 5/1/2012 PPO 6 SG 1 0.8428
我希望它看起来像这样。
state start_date end_date product edition lg_sg area area_factor
IL 10/1/2010 1/1/2011 PPO 6 SG 1 0.86
IL 1/1/2011 10/1/2011 PPO 6 SG 1 0.8428
IL 10/1/2011 1/1/2012 PPO 6 SG 1 0.825944
IL 1/1/2012 5/1/2012 PPO 6 SG 1 0.8428
感谢大家的帮助。
【问题讨论】:
-
添加您的查询:
Group By Year(start_date), area_factor. -
这是否适用于所有场景?我有一张大桌子,这只是说明我想法的一小部分。如果它们恰好落在不同的年份,添加“Year(start_date)”不会起作用吗? @古斯塔夫
-
一种方法是编写一个 vb 脚本来汇总数据 - 这是一个选项吗?如果您可以在文件中放置一个自动编号 ID 字段以方便将数据与先前记录匹配,则第二种方法可能会起作用 - 这是一种选择吗?
-
@DonGeorge 我可以写一个 vb 脚本。我知道该怎么做,但希望通过查询来解决这个问题。我确实在整个表上有一个索引,并且记录是唯一的,所以我可能会添加一个自动编号 ID。如果我走这条路,你能详细说明我会做什么吗?
-
不知道。我们只有您的样本数据。
标签: sql ms-access gaps-and-islands