【发布时间】:2015-12-24 11:35:06
【问题描述】:
我有一个复杂的查询,必须转换为 linq。我不知道如何使用 select top 1 语句和 select sum 转换交叉应用。这是查询:
SELECT C.LASTNAME, C.FIRSTNAME, U.IMP_REPORT_NAME, C.CLIENTID, U.IMP_USER_REPORT_ID, U.IMP_REPORT_DATE, U.EMPLOYEEID, TBL_RATINGS.TOTAL AS TOTAL_RATING
FROM CLIENTS AS C
CROSS APPLY ( SELECT TOP 1 IMP_USER_REPORT_ID, IMP_REPORT_NAME, IMP_REPORT_DATE, EMPLOYEEID
FROM IMPORT_USER_REPORTS
AND CLIENTID = C.CLIENTID
AND IMP_REPORT_DATE <= @fromDate
ORDER BY IMP_REPORT_DATE DESC, IMP_USER_REPORT_ID DESC
) AS U
CROSS APPLY ( SELECT SUM(ANSWER_RATING) AS TOTAL
FROM IMPORT_USER_ANSWERS
WHERE IMPORT_USER_ANSWERS.IMP_USER_REPORT_ID = U.IMP_USER_REPORT_ID
) AS TBL_RATINGS
WHERE C.ACTIVE = 1
ORDER BY LASTNAME, FIRSTNAME
【问题讨论】:
-
请不要只发布 SQL 并要求转换。至少显示一个类模型,以便导航属性和关联的多样性是可见的。此外,请说明您的目标是什么类型的 LINQ(针对实体?),和展示您自己的初步努力。他们向我们解释的内容比您想象的要多。