gpt4 book ai didi

mysql - 需要帮助选择具有最大日期的行

转载 作者:行者123 更新时间:2023-11-30 23:27:29 25 4
gpt4 key购买 nike

说明

我正在做一个项目,我的客户将文档(契约(Contract))发送给他们的客户。这些文档在来回发送时会经历几轮“事件”(例如,准备、发送给客户、从客户那里收到修订、由客户签名等)。对于特定公司(companyID 123456),我正在尝试为每个文档提取最近的事件。因此,下面的示例查询可能会返回 5 个不同的文档,每个文档可能经历了 4 个不同的事件。在示例结果中,我将其简化为单个文档 (documentId 6789)。

鉴于下面的示例结果,我希望得到第三行。所有行都针对单个文档,并且该文档具有最近的日期。但是,如下所示,我得到了四个。

如果我按 documentID 分组,那么我得到正确的日期,但我的事件和事件 ID 值不正确(转置)。我取得的唯一成功是将 Select 语句中的每个值包装在 Max() 函数中。当我这样做时,我通过正确的事件获得了我想要的一行。但是,文档 ID 之类的东西是错误的,因为它当然会返回最大 ID,而不是匹配的那个。

有人可以帮我调整这个查询,以便我得到我需要的结果吗?提前致谢!

注意:我在这里找到了这个“解决方案”,但我认为它并不直接适用于我正在做的事情: Fetch the row which has the Max value for a column

查询

    SELECT e.eventID,             e.event,             de.documentEventID,             de.documentID,              Max(de.eventDate) AS eventDate,             sd.companyID,     FROM siteDocuments sd        LEFT JOIN documents d ON d.documentID = sd.documentID        LEFT JOIN documentTypes dt ON dt.documentTypeID = d.documentTypeID        LEFT JOIN documentEvents de ON de.documentID = sd.documentID        LEFT JOIN events e ON e.eventID = de.eventID    WHERE sd.companyID = 123456    GROUP BY e.eventID
EXAMPLE RESULTS
-----------------------
EventId --- Event Doc --- EventId --- documentId --- eventDate
16 -------- FakeEventA -- 135791 ------ 6789 ------- 2012-04-11 08:35:54
32 -------- FakeEventB -- 726351 ------ 6789 ------- 2012-04-11 08:56:02
24 -------- FakeEventC -- 987236 ------ 6789 ------- 2012-05-09 16:48:57 <======
81 -------- FakeEventD -- 982378 ------ 6789 ------- 2012-04-20 14:06:19

(我加入了破折号来强制格式化)

最佳答案

您确定链接问题(特别是 this answer)的答案没有完全符合您的要求吗?

SELECT sd.* 
FROM siteDocuments AS sd
LEFT OUTER JOIN siteDocuments AS sd2
ON (sd.documentId = sd2.documentId AND sd.eventDate < sd2.eventDate)
WHERE
sd2.documentId IS NULL
and sd.documentId = 6789;

我以前用过那个答案来实现你正在寻找的东西。 (为了保持性能,您必须小心地在大型数据集上正确设置索引,但是——根据您使用的 DBMS 而有所不同)。

关于mysql - 需要帮助选择具有最大日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12501953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com