2013-01-24 49 views
0

因此...每個工作站都有多個發票,我的Linq語句將工作站連接到發票並將它們全部進行比較。 我只希望我的LINQ選擇最近的發票(爲該工作站生成的以前的發票)。LINQ比較2表,僅返回上一項,並非全部

自動櫃員機的所有發票進行比較,並將返回< = 1年前今天的任何發票(對於該工作站)。我只希望它返回,如果每個工作站的以前的發票是<今天的12個月。

隨着從之前常見的幫助,這是我有個大氣壓......

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

回答

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

這將返回它至少有一個發票年前工作站。

+1

謝謝Lazyman ... – John