-2

次のクエリの Nhibernate 基準を作成しようとしていますが、正しいアイデアが得られません。ガイドをお願いします

SELECT PEH.ResponseStatus FROM PatientEligibilityHistory PEH WHERE PEH.PatientId = " + patientId + " AND PEH.PayorId = " + payorId  + " AND PEH.DateOfService = '" + dateOfService + "' AND PEH.Insured_Id = '" + insuredId + "' HAVING PEH.ResponseDateTime = MAX(PEH.ResponseDateTime) 

max を使用して has 句の条件を作成する方法がわかりません。

4

1 に答える 1

1

相関サブクエリが必要です

DetachedCriteria query = DetachedCriteria.For<PatientEligibilityHistory>()
    .Add(Expression.In("PatientId", patientList))
    .Add(Expression.In("PatientCaseId", patientCaseList))
    .Add(Expression.In("PayorId", payorList))
    .Add(Expression.In("InsuredId", insuredList));

DetachedCriteria subquery = CriteriaTransformer.Clone(query).SetProjection(Projections.Max("ResponseDateTime"));

ICriteria criteria = query.GetExecutableCriteria(session)
    .Add(Subquery.Eq("ResponseDateTime", subquery));
    .SetProjection(Projections.Max("ResponseStatus"));
于 2012-05-14T12:54:59.303 に答える