J'ai besoin de savoir comment je peux réécrire la requête SQL suivante dans le format ICriteria de NHibernate. Il s'agit essentiellement d'un moyen d'imiter la fonction RANK() de MS-SQL et de renvoyer uniquement les résultats les plus récents.Besoin d'aide pour une requête SQL complexe dans NHibernate
SELECT a.Name, a.Value, a.CreationDate
FROM MyTable a
WHERE EXISTS
(
SELECT NULL
FROM
(
SELECT TOP 1 CreationDate
FROM MyTable
WHERE Name = a.Name
ORDER BY CreationDate DESC
) b
WHERE b.CreationDate = a.CreationDate
)
Par exemple, étant donné une table avec les données suivantes:
NOM, VALEUR, CREATIONDATE
'une clé', 'valeur un v1', '2009-11-11'
' Key One ',' value one v2 ',' 2009-11-12 '
' Clé deux ',' valeur deux v1 ',' 2009-11-09 '
' Clé trois ',' valeur trois v2 ', '2009-09-09'
'Trois clés', 'valeur trois v1', '2009-09-06'
'Trois clés », 'Valeur trois v3', '2009-10-01'
Les résultats de la requête ci-dessus serait:
'une clé', 'valeur une v2', '2009-11-12'
'Key Two', 'valeur deux v1', '2009-11-09'
'trois clés', « valeur trois v3, '2009-10-01'