2017-02-11 41 views
1

Im從表中獲取代碼列表及其各自的計數。我不需要在SQL中使用獨特的,但如果我不不要在LINQ查詢中添加這個,我得到許多重複行。爲什麼我需要使用此LINQ查詢來區分,但不使用SQL

那麼,爲什麼我需要在LINQ查詢上的不同調用?

SQL

SELECT COUNT(*) AS ServiceCodeCnt, d.ServiceCode 
FROM dbo.BackOrderItem d 
GROUP BY d.ServiceCode, d.Model 
HAVING d.Model ='UUTTIISJWW' 

LINQ(通過LINQpad)

void Main() 
{ 

    var retval = (from a in BackOrderItems where a.Model == "UUTTIISJWW" 
       group a by new {a.ServiceCode, a.Model} into grp1 
       from b in grp1 
        select new {Code = b.ServiceCode, Count = grp1.Count() }).ToList().Distinct();    


    retval.Dump();    

} 

回答

3

聲明...

from b in grp1 

...平展分組。因此,您可以選擇每個組中的所有單獨行,每個行都有其組的數量。

只是刪除這一說法,所以就變成:

var retval = (from a in BackOrderItems where a.Model == "UUTTIISJWW" 
      group a by a.ServiceCode into grp1 
      select new 
        { 
         Code = grp1.Key, 
         Count = grp1.Count() 
        }) 
      .ToList();    

注意,我還從分組取出Model。這不是必要的,因爲你只能篩選出一個Model

+0

是的,就是這樣,謝謝 – bitshift

相關問題