2016-07-28 148 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