For getting the last row of action, use ROW_NUMBER() to enumerate it accordingly and filter by it. E.g.
DECLARE @mytable TABLE (
TransactionDate DATE NOT NULL ,
NLNominalAccountID INTEGER NOT NULL ,
NLNominalTranTypeID BIT NOT NULL ,
AccountNumber INTEGER NOT NULL
);
INSERT INTO @mytable ( TransactionDate ,
NLNominalAccountID ,
NLNominalTranTypeID ,
AccountNumber )
VALUES ( '20/03/2014', 13896, 0, 37311 ) ,
( '24/01/2014', 13896, 0, 37311 ) ,
( '31/01/2014', 13896, 1, 37311 ) ,
( '31/01/2014', 13896, 1, 37311 ) ,
( '31/01/2014', 13896, 1, 37311 ) ,
( '31/03/2014', 13896, 1, 37311 ) ,
( '31/03/2014', 13896, 1, 37311 ) ,
( '31/03/2014', 13896, 1, 37311 ) ,
( '31/03/2014', 13896, 1, 37311 ) ,
( '31/03/2014', 13896, 1, 37311 ) ,
( '30/04/2014', 13896, 1, 37311 ) ,
( '30/05/2014', 13896, 1, 37311 ) ,
( '30/05/2014', 13896, 1, 37311 ) ,
( '20/05/2016', 13896, 0, 37311 ) ,
( '23/11/2016', 13896, 0, 37311 );
WITH Ordered
AS ( SELECT * ,
ROW_NUMBER() OVER ( PARTITION BY M.NLNominalAccountID
ORDER BY M.TransactionDate DESC ) AS RN
FROM @mytable M )
SELECT O.TransactionDate ,
O.NLNominalAccountID ,
O.NLNominalTranTypeID ,
O.AccountNumber
FROM Ordered O
WHERE O.RN = 1;