HAVING我想這個代碼轉換爲LINQ:GROUP BY和LINQ
select t1.title, COUNT(*)as num
from t1 INNER join t2 on t2.gId = t1.Id
group by t1.title, t1.cId
having t1.cId = 2
我想這下面的代碼:
from p in db.t1s join r in db.t2s on p.Id equals r.gId
where p.cId == 2
group p by p.title into g
select new{ name = from o in g select o.title, num = g.Count()}
但是,這並不正確返回計數。
請指導我怎樣才能解決這個問題
感謝
請提供一些樣本數據,預期結果和實際結果。此外,這絕對不是你的實際代碼,因爲它會是'Count'而不是'count'。我們不能說什麼*其他*不準確...... – 2012-08-15 12:00:18
在你的第二個查詢中,你用'title'分組,這顯然不同於'title,cId'分組。 – usr 2012-08-15 12:39:03
而'having'子句用於查詢彙總值,例如sum或count,但是您使用'having t1.cId = 2'。這應該在'where'子句中完成(順便說一句,你的linq查詢會這樣做)。 – 2012-08-15 13:23:11