首页 > 解决方案 > 记录最新日期,其中日期来自连接表

问题描述

我已经尝试了找到最后一条记录的所有答案,但未能获得成功的结果。我目前有一个列出活动预告片的查询。我需要它为每个预告片条目仅显示一行,其中该行基于连接表中的日期。

我有表拖车、公司、设备组、移动、停止

为了将拖车连接到停止(日期所在的位置),我必须将其加入设备组,该设备组加入运动,然后加入停止。

我尝试过使用 MAX 和 GROUP BY 以及 PARTITION BY,这两个都出错了。

我在这里尝试了很多解决方案,以及这些 https://thoughtbot.com/blog/ordering-within-a-sql-group-by-clause https://www.geeksengine.com/article/get-single-记录-来自-duplicates.html

似乎所有这些解决方案的日期都与他们想要分组的事物在同一个表中,而我没有。

SELECT
 trailer.*
 company.name, 
 equipment_group.currentmovement_id, 
 equipment_group.company_id, 
 movement.dest_stop_id, stop.location_id, 
 stop.*
FROM trailer 
LEFT OUTER JOIN company ON (company.id = trailer.company_id) 
LEFT OUTER JOIN equipment_group ON (equipment_group.id = 
trailer.currenteqpgrpid) 
LEFT OUTER JOIN movement ON (movement.id = 
equipment_group.currentmovement_id) 
LEFT OUTER JOIN stop ON (stop.id = movement.dest_stop_id)
WHERE trailer.is_active = 'A'

使用 MAX 和 GROUP BY 会给出错误“在选择列表中无效...未包含在...聚合函数中”

标签: sql

解决方案


Welllllll,我从来没有最终弄清楚这一点,但如果我通过两个条件加入到设备组的运动中,一切都很好。每个额外的记录都是由每个公司 ID 创建的......公司 ID 在每个表中。


推荐阅读