2016-08-28 6 views
0

LEFT Outer JOINの各顧客の注文数をどのように数えることができますか?Linq to SQL - グループ化された列とは異なる列でカウントする

モデル

​​

LINQクエリ

var Query1 = from c in Customers 
      join o in Orders into co 
      from t in co.DefaultIfEmpty() 
      select new {CustomerID = c.CustomerId, OrderID = (t == null ? 0 : t.OrderId)}; 
+0

を試してみてくださいどのように多くのcustomerIdを使用して、各顧客groubの注文したい場合'左外部結合は必要ありません'あなたが必要とするのは、「カウント」です。 'GroupJoin'で十分です。あなたの例では、co.DefaultIfEmpty()で 'from t 'を削除し、単に' co.Count() 'を使用します。 –

答えて

0

あなたは、このコード

var Query1 = from c in Customers 
       join o in Orders on c.CustomerId equals o.CustomerId 
       group o by o.CustomerId 
       into g 
       select new {CustomerId = g.Key, OrderCount = g.Count()}; 
+0

内部結合を使用しています。 [LET OUTER JOIN](https://msdn.microsoft.com/en-us/library/bb397895.aspx)を使用するとどうですか? – nam

関連する問題