2009-10-22 129 views
0
select colId, 
     colTaskType, 
     MaxID 
from tblTaskType 
join (
     select tblCheckList.colTaskTypeID, 
       max(colItemNumber) MaxID 
     from tblCheckList 
     group by colTaskTypeID 
     ) x on coltaskTypeID = tblTaskType.colID 

回答

0

假設您正在使用linq-to-sql並在datacontext中有兩個表。

或多或少準確的翻譯是:

var maxChecks = from checks in DataContext.tblChecklist 
       group checks by checks.colTaskTypeID into g 
       select new { colTaskTypeID, max = g.Group.Max(x => x.colItemNumber) }; 

var result = from t in DataContext.tblTaskType 
      join c in maxChecks on t.colTaskTypeID equals c.colTaskTypeID 
      select new { t.colId, t.colTaskTypeID, c.max }; 

但你可以嘗試:

var result = from t in DataContext.tblTaskType 
      select new { 
        t.colId, 
        t.colTaskTypeID, 
        Max = (from c in DataContext.tblChecklist 
          where c.colTaskTypeID == t.colTaskTypeID 
          select c.colItemNumber).Max() };