我有这个问题:
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,我想只选择它是最后一个dateTime_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
我该怎么做?
答案 0 :(得分:2)
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方式从1开始为每个Kode_AK组分配编号。之后我们只用1来选择这些记录。
答案 1 :(得分:0)
我不确定,但它可能对你有帮助。
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')