我有这个查询:
select Kode_AK,
Nama,
Tgl_insert as dateTime_entry
from openquery([ARMS], 'select * from KEANGGOTAAN.dbo.LOG_NAMA')
它将产品结果:
Kode_AK| Nama | dateTime_entry
AA |Aperdi | 11/29/2002 0:09
AB |Lumbung | 11/29/2002 0:10
AC |Trisula | 11/29/2002 0:11
AD |Kapita | 11/29/2002 0:12
AD |OSO | 3/30/2011 11:38
AE |Jasereh | 11/29/2002 09:23
AE |Paribas | 11/29/2002 09:24
AE |Tradeez | 11/29/2002 09:25
AE |Finansa | 11/29/2002 09:26
AF |Harita | 11/29/2002 09:27
正如你所看到的,有一行的Kode_AK相同,但日期时间不同。对于相同的Kode_AK,我只想选择它是最后一个日期Time_entry的数据。所以结果会是这样的:
Kode_AK| Nama | dateTime_entry
AA |Aperdi | 11/29/2002 0:09
AB |Lumbung | 11/29/2002 0:10
AC |Trisula | 11/29/2002 0:11
AD |OSO | 3/30/2011 11:38
AE |Harita | 11/29/2002 09:26
AF |Harita | 11/29/2002 09:27
我该怎么做?
select Kode_AK, dateTime_entry, Nama
from (
select
ROW_NUMBER () over ( partition by Kode_AK order by dateTime_entry desc ) rn,
Kode_AK, Nama,
dateTime_Entry
from
LOG_NAMA ) A
where rn = 1
上面的查询以desc方式为每组Kode_AK分配从1开始的数字。之后,我们只选择这些带有1的记录。
我不确定,但它可能会对您有所帮助。
SELECT Kode_AK, Nama, Tgl_insert as dateTime_entry
FROM OPENQUERY([ARMS],
'SELECT * FROM KEANGGOTAAN.dbo.LOG_NAMA t
JOIN
(
SELECT Kode_AK, MAX(Tgl_insert)
FROM KEANGGOTAAN.dbo.LOG_NAMA
GROUP BY Kode_AK
)AS temp
ON temp.Kode_AK = t.Kode_AK AND temp.Tgl_insert = t.Tgl_insert')