2016-08-11 16 views
1

我正在寫LINQ查詢來從表中獲取一些細節。我想要爲每個clientID計算docStatus"notVerified"林奇羣查詢計數和其他字段在mvc4

我的表結構如下

ID  clientId clientName  empID  docStatus 
1  IN1001 Infy   100  Verified 
2  IN1001 Infy   101  notVerified 
3  IN1001 Infy   102  notVerified 

查詢我想在下面的表格

clientID clientName Count 
IN1001  Infy   2 

這個數據是我下面嘗試之後。我能夠得到計數,但我應該在哪裏條件在我的下面的查詢。

var noofRecords = (from c in db.ts_upld_doc 
        group c by c.upld_docid into grouping 
        select new 
        { 
         key = grouping.Key, 
         Count = grouping.Count() 
        }); 
return noofRecords.Count(); 

非常感謝您。

+0

什麼是'upld_docid'?您的查詢與提供的表格不一致,這會使您感到困惑。 – user3185569

+0

上表中的ID爲upld_docid。抱歉給你帶來不便。 –

回答

1

可能是你什麼地方分組前的where子句(爲什麼將這些項目篩選出來)。然後,如果您希望按照您的指定輸出,最簡單的方法是將clientIDclientName分組。這是你的數據的唯一領域 - -

而且在你上面的查詢你被upld_docidID)字段分組意味着所有組的大小爲1 - 因爲如果你沒有組。

請參見下面的查詢,應該做你想要什麼:

var noofRecords = (from c in db.ts_upld_doc 
        where c.docStatus == "notVerified" 
        group c by new { c.clientID, c.clientName } into grouping 
        select new 
        { 
         ClientId = grouping.Key.clientID, 
         ClientName = grouping.Key.clientName, 
         Count = grouping.Count() 
        }).ToList(); 
+0

超級正常工作。謝謝 –

+0

@NIRANJANG - 它對你有用嗎? –

+0

是的,它對我來說工作正常。我應該從數據層發送noofRecords到控制器如下權利公共列表 getdetails {上面的查詢和返回noofRecords}如果我沒有錯? –

0

您可以將其中在多個地方,有一個選項:

var noofRecords = (from c in db.ts_upld_doc 
        where c.docStatus == "notVerified" 
        group c by c.upld_docid into grouping 
        select new 
        { 
         key = grouping.Key, 
         Count = grouping.Count() 
        }); 

return noofRecords.Count(); 

注意!你返回的記錄數,而不是物業算上你設置爲grouping.Count()

爲了得到預期的結果,你應該做到以下幾點:

var noofRecords = (from c in db.ts_upld_doc 
        where c.docStatus == "notVerified" 
        group c by new { c.clientId , c.clientName } into grouping 
        select new 
        { 
         ClientId = grouping.Key.clientId, 
         ClientName = grouping.Key.clientName, 
         Count = grouping.Count() 
        }); 

return noofRecords.ToList(); 
+0

查詢工作正常,但方法noofRecords.Count();是不正確的。我又添加了一行數據庫,我得到如下結果[0] {key = IN1001,count = 2}。 [1] {key = IN1001,count = 1} –

+0

現在我想要結果作爲clientID clientName爲每個clientid計數 –

+0

@NIRANJANG這正是我在Be Aware部分所說的。我剛剛回答了我應該在哪裏放置where子句的問題。檢查編輯的答案。 – user3185569