2012-04-10 206 views
3

你好,我試圖找出如何寫在LINQ的SQL語句,但我無法找到一個方法來做到這一點的時刻,這是SQL命令:LINQ GROUP BY和MAX()

SELECT cs.Site_Name, MAX(ed.EffectiveDate_Date) 
FROM [WAPMaster].[Factsheets].[EffectiveDate] ed, 
[WAPMaster].[Configuration].[Site] cs 
WHERE cs.Site_Id = ed.EffectiveDate_SiteId 
GROUP BY cs.Site_Name 

請問有人可以幫我理解linq語法嗎?由於

**我想這個到目前爲止(感謝levanlevi)

var test = (from e in this._wapDatabase.EffectiveDates 
      join c in this._wapDatabase.Sites 
      on c.Site_Id equals e.EffectiveDate_SiteId 
      group e by c.Site_Name into r 
      select new 
      { 
       r.Key.SiteName, 
       EffectiveDate = r.Max(d => d.EffectiveDate_Date) 
      }); 

但我發現了以下錯誤:

http://i.stack.imgur.com/AkJ5V.png

+2

只要注意:沒有任何翻譯*快*和*已經工作* SQL查詢到LINQ。只需使用SQL。 Linq *不會更好*。 – Tigran 2012-04-10 09:14:07

回答

10
SELECT cs.Site_Name , 
     MAX(ed.EffectiveDate_Date) 
FROM [WAPMaster].[Factsheets].[EffectiveDate] ed , 
     [WAPMaster].[Configuration].[Site] cs 
WHERE cs.Site_Id = ed.EffectiveDate_SiteId 
GROUP BY cs.Site_Name 



from e in WAPMaster.Factsheets.EffectiveDate 
join c in WAPMaster.Configuration.Site 
on c.Site_Id equals e.EffectiveDate_SiteId 
group e by c.Site_Name into r 
select new { SiteName = r.Key, EffectiveDate = r.Max(d=>d.EffectiveDate_Date)} 
+0

感謝看起來真的很接近,它告訴我「無法解析連接方法」,你知道它爲什麼可以嗎? – 2012-04-10 09:39:04

+0

http://i.stack.imgur.com/Z9o9E.png這是我得到的錯誤。 – 2012-04-10 09:45:45

+0

你使用實體框架嗎? LinqToSql類之間有連接嗎? – levi 2012-04-10 10:09:01

1
var test = (from effectiveDates in this._wapDatabase.EffectiveDates       
      from sites in this._wapDatabase.Sites       
      where sites.Site_Id = effectiveDates.EffectiveDate_SiteId 
        group effectiveDates by sites.Site_Id into g       
      select new { siteId = g.key , effectiveDate = g.max(ed => ed.EffectiveDate_Date)});