1

いくつかのメンバーを持つユニオンのリストと、ユニオンごとのページ ヒットを含む別のテーブルがあります。各組合、各タイプのメンバーの数、およびクリック数 (ページ ビュー) を一覧表示するレポートが必要です。

クリックは、日付とユニオンIDを持つ別のテーブルにあります

これは近いですが、私が望む結果は実際にはありません。カウントにはメンバーの合計が表示されますが、クリックの合計は表示されません。総クリック数を取得するにはどうすればよいですか? (UnionID に一致するクリック テーブルのレコードをカウントします)

(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 |
4

1 に答える 1

0

WHERE で最初の条件は必要ないと思います。既にUnionName.

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

クリックに関しては、次のことを試してください。

TotalClicks = g.Count(x => x.unionID == g.Key.unionID)
于 2011-09-09T20:14:43.760 に答える