【问题标题】:Need Linq translation for the following SQL Query以下 SQL 查询需要 Linq 翻译
【发布时间】:2009-10-22 13:08:05
【问题描述】:
select  colId,
        colTaskType,
        MaxID
from    tblTaskType
join    (
         select tblCheckList.colTaskTypeID,
                max(colItemNumber) MaxID
         from   tblCheckList
         group by colTaskTypeID
        ) x on coltaskTypeID = tblTaskType.colID

【问题讨论】:

    标签: sql linq group-by subquery max


    【解决方案1】:

    假设您使用的是 linq-to-sql 并且在数据上下文中有两个表。

    或多或少准确的翻译是:

    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() };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      相关资源
      最近更新 更多