2011-09-09 268 views
1

我有一個聯盟的列表與幾個成員和另一個頁面點擊聯盟。 需要一份報告,列出每個聯盟,每種類型的成員和點擊次數(頁面瀏覽量)。linq,group by和count

點擊的是一個單獨的表日期和蚌

這是接近,但實際上並沒有我想要的結果。計數顯示的是成員的總數,但不顯示總點擊次數。我如何獲得總點擊次數? (計數匹配蚌,在點擊表中的記錄)

(from c in db.view_Members_Details 
join h in db.tbl_Clicks on c.unionID equals h.unionID 
group c by new { c.UnionName, h.unionID } into g 
select new 
{ 
    TotalClicks = g.Count(), 
    UnionName = g.Key.UnionName, 
    userTypeID1 = g.Where(x => x.UnionName.Equals(g.Key.UnionName) && x.userTypeID.Equals(1)).Count(), 
    userTypeID2= g.Where(x => x.UnionName.Equals(g.Key.UnionName) && x.userTypeID.Equals(2)).Count(), 
    userTypeID3= g.Where(x => x.UnionName.Equals(g.Key.UnionName) && x.userTypeID.Equals(3)).Count(), 
}).ToList(); 

結果應該是:

Clicks Count | Union Name | userTypeID1 Count | userTypeID2 Count | userTypeID3 Count | 

回答

0

我不認爲你需要在第一個條件你在哪裏,因爲你已經上進行分組UnionName

g.Count(x => x.userTypeID == 3) //etc for 1, 2, 3 

至於點擊,請嘗試以下操作:

TotalClicks = g.Count(x => x.unionID == g.Key.unionID) 
+0

感謝,去掉「那裏」的工作好,但TOTALCLICKS不起作用。它只是將所有記錄加起來,以便統計成員的數量和點擊數量。我會需要他們分開 – Hector