Sql 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:35Sql 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: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处于什么状态?展开数据示例和输出示例。显示时间,但日期如何?