簡體   English   中英

LINQ查詢與sub where子句

[英]LINQ query with sub where clause

我有一個SQL查詢:

 SELECT [Paypoint]
      ,[Department]
      ,[EmployeeCode]
      ,[Gender]
      ,[EmployeeTitle]
      ,[Initials]
      ,[Surname]
      ,[ItemsIssuedDate]
      ,[ItemsIssuedStockNumber]
  FROM [MyTable] AS a
  WHERE
 (
      [ItemsIssuedDate] =   (   SELECT     max([ItemsIssuedDate])
                                FROM        [MyTable] AS b
                                WHERE       a.[Paypoint] = b.[Paypoint]
                                            AND a.[Department] = b.[Department]
                                            AND a.[EmployeeCode] = b.[EmployeeCode]
                                            AND a.[Gender] = b.[Gender]
                                            AND a.[Surname] = b.[Surname]
                             )

如何獲得比較LINQ查詢? 我不能使用SQL查詢,因為Data已經存在於DataSet中,現在需要進一步修改...

我試過了,但這不起作用:

        var query = from a in excelTable
                    where
                    (
                        from c in excelTable
                        group c by new
                        {
                            c.Paypoint,
                            c.EmployeeCode
                        } into g
                        where string.Compare(a.Paypoint, g.Key.Paypoint) == 0 && string.Compare(a.EmployeeCode, g.Key.Paypoint) == 0
                        select g.Key.Paypoint
                    )
                    select a;
var query = from a in MyTable
            group a by new { 
              a.Paypoint,
              a.Department,
              a.EmployeeCode,
              a.Gender, 
              a.Surname
            } into g
            select g.OrderByDescending(x => x.ItemsIssuedDate)
                  //.Select(x => new { required properties })
                    .First();      

您還可以選擇僅包含必填字段的匿名對象。 由你決定。

您最直接的SQL查詢將是:

var query = 
    from a in excelTable
    let maxIssueDate = 
        (from b in excelTable
         where a.Paypoint == b.Paypoint &&
             a.Department == b.Department &&
             a.EmployeeCode == b.EmployeeCode &&
             a.Gender == b.Gender &&
             a.Surname == b.Surname
         select b.ItemsIssueDate).Max()
    where a.ItemsIssueDate == maxIssueDate
    select a;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM