SQL Server:选择日期最大的多个项目代码

时间:2018-05-17 03:27:06

标签: sql sql-server

我有一张桌子有很多商品代码,然后我选择' 09015' 09002' 09025' 09026' 09025' 09026&# 39;这些项目代码,其中pat_no =' 33516',问题是如何比较这些项目代码的最大rpt_time?

这是我的T-SQL查询:

base tabel / view not found

结果:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用以下两种查询之一:

SELECT  
    pat_no, item_code, [value], rpt_time
FROM Tmhtc_PHR.dbo.lab_item 
WHERE pat_no, item_code, rpt_time IN (
        SELECT pat_no, item_code, MAX(rpt_time)
        FROM Tmhtc_PHR.dbo.lab_item 
        WHERE pat_no = '33561' 
            AND item_code IN ('09015', '09002', '09025', '09026')
        GROUP BY item_code
    )
ORDER BY pat_no, item_code;

或者

SELECT  
    i.pat_no, i.item_code, i.[value], i.rpt_time
FROM Tmhtc_PHR.dbo.lab_item i
INNER JOIN (
    SELECT pat_no, item_code, MAX(rpt_time) AS max_rpt_time
    FROM Tmhtc_PHR.dbo.lab_item 
    WHERE pat_no = '33561' 
        AND item_code IN ('09015', '09002', '09025', '09026')
    GROUP BY item_code
) im
ON i.pat_no = im.i.pat_no AND i.item_code = im.item_code AND i.rpt_time = im.max_rpt_time
ORDER BY i.pat_no, i.item_code;