Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ms access如何获取同一类别中的第一个和最后一个_Sql_Vba_Database_Ms Access - Fatal编程技术网

Sql ms access如何获取同一类别中的第一个和最后一个

Sql ms access如何获取同一类别中的第一个和最后一个,sql,vba,database,ms-access,Sql,Vba,Database,Ms Access,我有一个很大的汽车旅行表(旅行名称、经过的城市以及进出时间)。表如下: 身份证件 城市1 时间1 城市2 时间2 城市3 时间3 城市4 时间4 城市5 时间5 01 布斯 11:00 布赫 11:10 比尔 11:15 叶绿素 11:30 tns 11:45 01 霍克 00:00 dwa 00:10 泽尔 00:20 CDP 11:30 CHRG 11:35 看看这是否能让你接近你想要的。表1必须有一个唯一的标识符字段-应该提供自动编号。另外,时间字段是日期/时间类型,包含完整的日期和时间值

我有一个很大的汽车旅行表(旅行名称、经过的城市以及进出时间)。表如下:

身份证件 城市1 时间1 城市2 时间2 城市3 时间3 城市4 时间4 城市5 时间5 01 布斯 11:00 布赫 11:10 比尔 11:15 叶绿素 11:30 tns 11:45 01 霍克 00:00 dwa 00:10 泽尔 00:20 CDP 11:30 CHRG 11:35
看看这是否能让你接近你想要的。表1必须有一个唯一的标识符字段-应该提供自动编号。另外,时间字段是日期/时间类型,包含完整的日期和时间值

表1:TripDetails
字段:ID_PK、TripID_FK、City1、Time1等

问题1:TripUNION
从将数据重新排列为更规范化的结构的联合查询开始

SELECT ID_PK, TripID_FK, city1 AS City, time1 AS Tme FROM TripDetails
UNION SELECT ID_PK, TripID_FK, city2, time2 FROM TripDetails
UNION SELECT ID_PK, TripID_FK, city3, time3 FROM TripDetails
UNION SELECT ID_PK, TripID_FK, city4, time4 FROM TripDetails
UNION SELECT ID_PK, TripID_FK, city5, time5 FROM TripDetails
ORDER BY TripID_FK, Tme;
UNION限制为50个选择行,因此继续为其他城市和时间对添加选择行。没有UNION的设计器-必须在SQLView中键入或复制/粘贴

Query2:将TripUNION查询联接到Cities表以进行聚合查询:

SELECT TripUNION.TripID_FK, TripUNION.ID_PK, Cities.state, 
       Min(TripUNION.Tme) AS Enter, Max(TripUNION.Tme) AS Exit
FROM TripUNION INNER JOIN Cities ON TripUNION.City = Cities.city
GROUP BY TripUNION.ID_PK, TripUNION.TripID_FK, Cities.state;

但是,如果在同一条记录上重新输入某个状态,则输出很可能不是所需的。此外,如果一次行程有多条记录仅涉及一个状态,则可能的输出也不会是所需的。由于您的数据没有显示这两种情况,因此这不会为给定的样本生成所需的输出。

Access SQL提供了“第一个和最后一个聚合函数返回组中的第一个和最后一个值。@NicholasHunter想解释更多我不熟悉的访问和sql@NicholasHunter这个函数垂直搜索,我想水平搜索,而且我不会得到所有的ghe状态,不仅第一个数据结构没有规范化,这可能需要自定义用于水平搜索的VBA函数。为什么行程1和状态1的退出时间不是11:45?fok和dwa处于什么状态?展开数据示例和输出示例。显示时间,但日期如何?