2016-07-28 3 views
-2
SELECT * 
FROM 
    ProcedureLookup ProcLookup 
    INNER JOIN (SELECT PatientProcedures.PP_ProcedureId, COUNT(*) as ProcCount 
       FROM (PatientProcedures INNER JOIN Treatments ON PatientProcedures.PP_TreatmentId = Treatments.TS_TreatmentId) 
       WHERE YEAR(Treatments.TS_Date) = YEAR(GETDATE()) 
       GROUP BY PatientProcedures.PP_ProcedureId) cyearProc ON ProcLookup.PL_ProcedureId = cyearProc.PP_ProcedureId 
ORDER BY ProcCount DESC; 

여기서 ProcedureLookup, Treatments, PatientProcedures이 테이블입니다.어떻게이 쿼리를 LINQ로 변환합니까?

+0

전혀 시도한 적이 있습니까? 코드를 공유 할 수 있습니까? –

답변

0

여기 linq 쿼리.

var result = (from ProcLookup in db.ProcedureLookup 
      join cyearProc in (
            from p in db.PatientProcedures 
            join t in db.Treatments on p.PP_TreatmentId equals 
                  t.TS_TreatmentId 
            where 
            t.TS_Date.Year == DateTime.Now.Year 
            group p by p.PP_ProcedureId into g 
            select new 
            { 
            PP_ProcedureId = g.Key, 
            ProcCount = g.Count() 
            } 
           ) on ProcLookup.PL_ProcedureId equals 
            cyearProc.PP_ProcedureId 
      orderby cyearProc.ProcCount descending 
      select new 
      { 
       // Columns 
       PP_ProcedureId = ProcLookup.PP_ProcedureId, 
       ProcCount = cyearProc.ProcCount 
      }).ToList(); 
+1

몇 가지 사항을 변경하면 시간을 내 주셔서 감사합니다. – aNTONY

관련 문제