1

我正在尝试编写一个脚本,该脚本将返回一个独特的 documentid-physician-patient 三元组的最新值。我需要脚本的行为类似于 group by 语句,除了 group by 一次只能处理一列。我只需要最新的唯一三胞胎的日期和状态信息。请让我知道您需要从我这里得到什么帮助。这是当前非常简单的声明:

    SELECT
        TransmissionSend.CreateTimestamp,
        TransmissionSendItem.Status,
        TransmissionSendItem.PhysicianId,
        TransmissionSendItem.DocumentIdDisplay,
        Utility.SqlFunctions_NdnListToAccountList(TransmissionSendItem.NdocNum) AS AccountNum
    FROM
        Interface_SFAX.TransmissionSend,
        Interface_SFAX.TransmissionSendItem
    WHERE
        TransmissionSend.ID = TransmissionSendItem.childsub --I don't know exactly what this does, I did not write this script. It must stay here though for the exact results.

    ORDER BY TransmissionSend.CreateTimestamp DESC -- In the end, each latest result of the unique triplet will be ordered from most recent to oldest in return

我的问题是,我如何才能将结果限制为每个医生 ID、文档 ID 和帐号组合的最新状态?

4

1 回答 1

4

首先选择带有 documentid GROUP BY documentid 的 MAX(date),然后通过第一个选择结果从表中选择所有数据,例如使用内部连接。

SELECT table.additionalData, J.id, J.date
FROM table
INNER JOIN (SELECT id, MAX(date) AS date 
            FROM table GROUP BY id) AS J 
ON J.id = table.id 
AND J.date /* this is the max date */ = table.date
于 2012-08-10T15:26:48.047 回答