0

所以...每个工作站都有许多发票,My Linq 语句将工作站连接到发票并比较它们。我只希望我的 LINQ 选择最近的发票(为该工作站生成的上一张发票)。

ATM 将比较所有发票,并且将返回 <= 1 年前今天的任何发票(针对该工作站)。我只希望它在每个工作站的前一张发票小于今天的 12 个月时返回。

在前一个 Q 的帮助下,这就是我所拥有的...

   DateTime OneYearAgo = DateTime.Now.AddYears(-1);

        var SelectedObject =
            (from workstation in db.Work_Sites
             join invoice in db.Invoices on workstation.id equals invoice.Site_Id
              where invoice.Invoice_Date <= OneYearAgo
             select workstation).Distinct().ToList();
4

1 回答 1

1
  DateTime OneYearAgo = DateTime.Now.AddYears(-1);

  var SelectedObject =
            (from workstation in db.Work_Sites
             join invoice in db.Invoices.Where(i => i.Invoice_Date <= OneYearAgo)
                   on workstation.id equals invoice.Site_Id into g
             where g.Any()
             select workstation).ToList();

这将返回一年前至少有一张发票的工作站。

于 2013-01-24T12:49:56.380 回答