我已尝试找到找到的最后一条记录的所有答案,但未能获得成功的结果。我目前有一个列出活动预告片的查询。我只需要为每个预告片条目显示一行,其中该行基于联接表中的日期。
我有桌子 拖车,公司,设备组,运动,停止
为了将预告片连接到停止位置(日期在此处),我必须将其加入设备组,该设备组加入运动,然后又合并到停止位置。
我尝试使用MAX和GROUP BY,以及PARTITION BY,这两个错误都出了。
我在这里尝试了许多解决方案 https://thoughtbot.com/blog/ordering-within-a-sql-group-by-clause https://www.geeksengine.com/article/get-single-record-from-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会给出错误“选择列表中无效...未包含在...聚合函数中”
答案 0 :(得分:0)
Wellllllll,我从没想过要解决这个问题,但是如果我按照两个条件加入机队,那一切都很好。每个额外的记录都是由每个公司ID创建的。公司ID在每个表中。