2017-02-17 10 views
-2

У меня есть запрос, который я знаю, как делать в SQL, но изо всех сил пытаюсь выяснить запрос LINQ. Вот SQL.Linq Query Group несколькими столбцами, имеющими счет> 1

SELECT ordNo, tranNo, COUNT(distinct custNo) 
FROM orders 
GROUP BY ordNo, tranNo 
HAVING COUNT(distinct custNo) > 1 

Я не чувствую, что это тот же вопрос, который я вижу в вас как дубликат. Связанный вопрос содержит только группы по одному свойству. Я потерял информацию о запросах Linq, которые я пробовал, но вот один из них.

var countList = from o in orders 
      group o by new {o.orderNo, o.tranNo, o.custNo} 
      into grp 
      where grp.Key.custNo.Distinct().Count() > 1 
      select grp; 

Я пробовал следующее предложение, но, как кто-то заметил, вы не можете получить доступ к свойству custNo.

+5

Пожалуйста, поделитесь своим linq тоже. Покажите, что вы пробовали и исследовали. Мы можем помочь оттуда, но не пишем его для вас. –

+0

Кажется, все в порядке с вашим запросом LINQ. У вас есть сообщение об ошибке? –

+0

Используете ли вы Linq для SQL или Entity Framework? – user1859022

ответ

0

Просто spitballing, так как я не знаю структуру таблицы.

context.orders 
    .GroupBy(o => new { o.ordNo, o.tranNo, o.custNo }) 
    .Where(o => o.custNo.Distinct().Count() > 1) 
    .Select(o => new { 
     ordNo = o.ordNo, 
     tranNo = o.tranNo 
    }); 
+0

Я сомневаюсь, что вы можете получить доступ к свойству custNo, как это после результата группировки –

+0

А, хороший момент. Похоже, что вопрос все еще укушен ... –