Un altro approccio potrebbe essere:
SELECT t.*
FROM(SELECT t.*,
ROW_NUMBER() OVER (PARTITION BY id, system, type1, nid, name
ORDER BY date DESC) AS rn
FROM tabelA t
)
WHERE rn = 1
Forse ti aiuterà.