【发布时间】:2017-08-16 11:21:27
【问题描述】:
以下是我的查询结果。但是有很多冗余记录,因此,我想过滤掉这个查询的结果。我的目标是每个角度只提取两条记录,第一条和最后一条。 例如当角度为195时, 我想在 date=2/27/2017, time=2:00:00 AM 和 日期为 2/27/2017 和 time=9:00:00 AM 时的第二条记录。 同样,当角度更改为 210 我想在 date=2/27/2017 time=10:00:00 AM 和另一条记录时获得它的第一条记录当日期和时间是 2/27/2017 和 9:00:00 PM。 对于所有记录也是如此。 我自己尝试过,但每个角度只返回一条记录,只返回顶部的一条,不知道如何获得最后一条。 我正在使用两个查询(Query1)
SELECT final.Date, final.Angle
FROM final
GROUP BY final.Date, final.Angle
第二个查询是 (fileredOUTput)
SELECT Query1.Date, Query1.Angle, (SELECT TOP 1 final.Date FROM final WHERE Query1.Date=final.Date AND Query1.Angle= final.Angle)
AS NewDate,
(SELECT TOP 1 final.Angle FROM final WHERE Query1.Date=final.Date AND Query1.Angle= final.Angle) AS NewAngle,
(SELECT TOP 1 final.earthCol.Value FROM final WHERE Query1.Date=final.Date AND Query1.Angle= final.Angle) AS NewE_CV,
(SELECT TOP 1 final.earthCol.ColNu FROM final WHERE Query1.Date=final.Date AND Query1.Angle= final.Angle) AS New_E_CN,
(SELECT TOP 1 final.mars_Col.Value FROM final WHERE Query1.Date=final.Date AND Query1.Angle= final.Angle) AS NewM_CV,
(SELECT TOP 1 final.Col_apart FROM final WHERE Query1.Date=final.Date AND Query1.Angle= final.Angle) AS New_CApart,
(SELECT TOP 1 final.mars_Col.ColNu FROM final WHERE Query1.Date=final.Date AND Query1.Angle= final.Angle) AS NewM_CN,
(SELECT TOP 1 final.Time FROM final WHERE Query1.Date=final.Date AND Query1.Angle= final.Angle) AS NewTime
FROM Query1, final
WHERE (((Query1.Date) Between [Forms]![Query Form]![txtStartDate] And [Forms]![Query Form]![txtEndDate]));
Query results and results I need are marked with red。 期待着听到您的意见。 谢谢。
【问题讨论】:
-
为什么在不涉及聚合函数的情况下使用 GROUP BY。您是否尝试执行 SELECT DISTINCT?
-
是的,我想选择不同的记录,但每个角度只能选择两个,不是全部
-
请看我发的图片
标签: sql database ms-access ms-access-2013