У меня есть следующие данные.
Clientid Accountype Dateapplied
1 Current 01/01/2018
1 Savings 03/01/2018
1 Current 17/01/2018
2 Current 01/04/2018
2 Current 15/04/2018
3 Savings 13/04/2018
3 Savings 15/04/2018
3 Current 14/04/2018
Как выбрать самую последнюю дату здесь для каждого Клиента, где Accountype = Current
. По сути, я хочу иметь возможность пометить последнюю запись для каждого клиента, поэтому, когда я смогу выбрать, я бы установил новое поле как True.
Итак, результаты, которые я хочу вернуть:
Clientid Accountype Dateapplied
1 Current 17/01/2018
2 Current 15/04/2018
3 Current 14/04/2018
Я также пытался группировать по ClientID, затем выбирал с помощью max, но что бы я ни пытался, я не могу выбрать последнюю для каждой клиентской группы. Должно быть просто, но ломать голову над этим.
Так что пробовал такие вещи, но не работал. Ценится, если помочь кому-либо.
select Dateapplied,Clientid, Accountype
from Clienttable t1
WHERE EXISTS(SELECT 1
FROM Clienttable t2
WHERE Accountype = 'Current'
and t2.Clientid = t1.X_Clientid
GROUP BY t2.Clientid,
t2.Dateapplied
HAVING t1.Dateapplied= MAX(t2.Dateapplied))