2011-12-28 20 views
3

でGROUP BY句にないフィールドを選択について 「LINQでGROUP BY句にないフィールドを選択する方法」誰が私を助けることができるLINQ

var ReportData = 
     from a in context.Table1 
     from b in context.Table2 
     where a.personelID == b.ID 
     && a.DateField.Value.Year == 2011 
     group a by new { a.personelID, b.Name, b.Surname} into grouping 
     select new 
     { 
      // grouping.Key.DateField, 
      Name= grouping.Key.Name, 
      Surname= grouping.Key.Surname, 
      PagaBruto = grouping.Sum(i => i.Bruto)), 
     }; 

私が選択することはできませんフィールド"DateField"にあります。テーブル1、私はこのフィールドをGroup Byに入れたくありません。間違った結果が出るためです。 感謝!

+3

各グループには多くの 'DateField'値がありますが、どれが必要ですか? – dasblinkenlight

+2

あなたのグループby節に 'DateField'を含めると間違った結果が出ると、各グループの要素に異なる' DateField'値があるようです。その場合、結果シーケンスの要素に含める値のどれが*明確ではないでしょう。 – phoog

+1

グループ化でDateFieldを使用したくない場合は、2つ以上のDateFieldがグループ化されている可能性があります.2つ以上のDateFieldでグループを選択するにはどうすればいいですか? –

答えて

1

これはうまくいくのでしょうか?

group a by new { a.personelID, b.Name, b.Surname, a.DateField} into grouping 
    select new 
    { 
     DateField = grouping.Key.DateField, 
     Name= grouping.Key.Name, 
     Surname= grouping.Key.Surname, 
     PagaBruto = grouping.Sum(i => i.Bruto)), 
    }; 
+6

これも日付の値でグループ化されます。私はそれが意図されていないと信じて –

+0

@UfukHacıoğulları私はあなたに同意する –

7

グループ化する前に両方のテーブルメンバーを選択する必要があるので、両方からデータを選択できます。私はwhere節の代わりにjoinを行った。

+0

素敵な答え男;) –

関連する問題