如何从具有最新日期戳的JOIN中获取记录集?

德鲁怀亚特

我正在写一个从3个表中获取一些数据的存储过程。现在,我的输出如下所示:

sql输出

钻机20被列出两次。我只想获取具有最新日期戳的记录。所以我的查询现在看起来像这样:

SELECT
      robinson_Rigs.rigId
    , robinson_Rigs.rigName
    , robinson_Clients.companyName
    , robinson_Wells.wellName
    , robinson_Wells.county
    , max(robinson_Wells.startDate)
    , robinson_Wells.directions
FROM robinson_Wells
    JOIN robinson_Rigs ON robinson_wells.rigId = robinson_Rigs.rigId
    JOIN robinson_Clients on robinson_Wells.clientId = robinson_Clients.clientId
group by robinson_Rigs.rigId
ORDER BY robinson_Rigs.rigId

但我收到此错误:

Msg 8120, Level 16, State 1, Procedure robinson_GetAllDrivingDirections, Line 14
Column 'robinson_Rigs.rigName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

我怎样才能做到这一点?

安德鲁·凯勒

如果任何其他字段包含该装备的其他值,则仅对除StartDate以外的所有内容进行简单分组仍然会返回一个装备的多行。

而是尝试这样的事情:

SELECT
      robinson_Rigs.rigId
    , robinson_Rigs.rigName
    , robinson_Clients.companyName
    , robinson_Wells.wellName
    , robinson_Wells.county
    , robinson_Wells.startDate
    , robinson_Wells.directions
FROM robinson_Wells
    JOIN robinson_Rigs ON robinson_wells.rigId = robinson_Rigs.rigId
    JOIN
    (
        SELECT rigId
            , MAX(startDate) AS MostRecentDate
        FROM robinson_rigs
        GROUP BY rigId
    ) latestRigDate ON robinson_Rigs.RigId = latestRigDate.RigId
        AND robinson_rigs.StartDate = latestRigDate.MostRecentDate
    JOIN robinson_Clients on robinson_Wells.clientId = robinson_Clients.clientId
ORDER BY robinson_Rigs.rigId

加入的子查询将返回所有装备ID及其最大(最新)日期的列表。通过rigId和startDate将其连接到完整的robinson_rigs表将“过滤”该表,以便仅返回每个装备的最新日期的记录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取至少6个月前在Pandas DataFrame中具有最新日期的id的值

Pyspark-如何检查两条记录中的哪一条具有最新日期及其列值?

选择哪个具有匹配的日期或最新日期记录

如何获取最新记录或在mysql的列中具有所有不同值的最大对应日期的记录?

如何在Swift中从数组获取最新日期

如何在单个SQL查询中获取最新日期和日期之前的所有信息

在postgres中仅选择具有最新日期的行

在mysql中,如何与第二张表联接并获得具有最新日期的行?

获取具有最新日期的文件夹

从dict获取具有最新日期时间戳的ID

选择具有最新日期的唯一记录

选择具有最新日期SQL的记录

使用最大和时间总和来检索记录,如果不同的用户具有相同的时间,则获取具有创建的最新日期的记录

如何从多个表中按最新日期记录排序?

如何使用XSLT 1.0过滤和获取具有最新日期的XML元素

如何用最新日期过滤记录

JS:如何获取具有最新日期的对象

MySQL,从表中获取具有2个不同列的最新日期的行

在MySQL中如何使用SQL获取具有最新日期的行

查找具有最新日期时间的记录

如何选择具有最新日期和时间的行

根据最新日期获取记录

SQL从表中获取最新日期以包含在具有内部联接的VIEW中

如何从表中获取最新日期数据

如何选择具有最新时间日期戳的记录

如何通过sql中的最新日期获取用户名的最新记录

如何从 MySQL Workbench 的两列中获取最新日期?

如何根据最新日期从多条记录中获取特定记录

如何从元组列表中获取最新日期?