SELECT PA.refPatient_id
,MAX(PA.datee) AS datee
,PR.temporary,PA.statue
FROM PatientClinicActs AS PA
,PatientStatueReasons AS PR
WHERE PA.refClinic_id = 25
AND PA.refreason_id = PR.reason_id
GROUP BY PA.refPatient_id,PA.statue,PR.temporary
返回这些结果:
refPatient_id datee temporary statue
----------- ----------------------- ------ -----
14706 2008-12-01 11:01:00 1 0
14707 2009-05-18 16:21:00 1 0
14708 2009-07-15 09:46:00 1 0
14708 2009-07-29 16:12:00 1 0
14716 2009-11-09 12:29:00 0 0
14716 2009-09-01 11:15:00 1 0
14716 2009-09-29 16:44:00 1 1
但我想有以下结果:
refPatient_id datee temporary statue
----------- ----------------------- ------ -----
14706 2008-12-01 11:01:00 1 0
14707 2009-05-18 16:21:00 1 0
14708 2009-07-29 16:12:00 1 0
14716 2009-11-09 12:29:00 0 0
的区别是什么? =>在这些结果中,每个refPatient_id都有最新的行。 我应该运行什么来获得这些结果?
你想获得最新的一个给定refPatient_Id?做一个rank()并选择rank == 1应该工作的位置 – 2009-11-20 11:52:08
我想获取每个refPatient_id的最新行。你能写一个排名榜吗? – uzay95 2009-11-20 12:34:56
您的14708结果:他们在第一个结果集中看起来不对。您不应该使用那个查询结果 – gbn 2009-11-20 12:35:06