Inquiridor
LINQ com inner join e group by

Pergunta
-
Bom dia
Tenho a seguinte situação:
Table MAP ORC Ref Tipo 12 x_C1 A 12 x_C2 A 12 y_C1 A 12 z_C1 B 13 x_C1 A 13 x_C2 A Table MO ORC Ref dim QT 12 x_C1 120 1 12 x_C1 130 5 12 x_C2 121 3 12 y_C1 100 1 12 y_C1 120 2 12 z_C1 10 1 Tabble BS Ref REFB x_C1 X x_C2 X y_C1 Y z_C1 Z Pretendo fazer em LINQ uma instrução para fazer o inner join com group by para Orc == 12.
O resultado pretendido é:
ORC Ref Tipo dim QT REFB x_C1 12 X_C1 A 120 1 X 12 X_C1 A 130 5 X x_C2 12 x_C2 A 121 3 X Y_C1 12 Y_C1 A 100 1 Y 12 Y_C1 A 120 2 Y z_C1 12 z_C1 B 10 1 Z Alguém me pode ajudar?
Muito obrigado
Todas as Respostas
-
Veja se algum desses artigos te ajuda, creio que o primeiro já soluciona o seu problema:
1 - http://stackoverflow.com/questions/19395849/linq-group-by-on-multiple-table-and-inner-join
2 - http://stackoverflow.com/questions/530925/linq-using-inner-join-group-and-sum- Sugerido como Resposta Mr. GMSOFT sexta-feira, 24 de outubro de 2014 11:45
-
Olá Cafa,
o join é fácil, veja um exemplo com tres tabelas e agrupadas, lembrando que o nome aqui será T1,T2,T3 :
var join = db.T1 .Join(db.T2, t1 => t1.ID, t2 => t2.ID, (t1, t2) => new { t1, t2 }) .Join(db.T3, t1t2 => t1t2.t2.ID, t3 => t3.ID, (t1t2, t3) => new { t1t2, t3 }) .Where(i => i.t3.ID == 12) .GroupBy(i => new { //todos seus campos do select IDT1 = i.t1t2.t1.ID, IDT2 = i.t1t2.t2.ID, IDT3 = i.t3.ID }) .Select(s => new { //seu select agrupado IDT1 = s.Key.IDT1, IDT2 = s.Key.IDT2, IDT3 = s.Key.IDT3 }) .ToList();
Tente entender a estrutura só assim vai conseguir montar esse select, mas se não entender basta alterar os campos que vai funcionar...
-
Para consulta, segue sugestão:
var innerGroupJoinQuery = from category in categories join prod in products on category.ID equals prod.CategoryID into prodGroup selectnew { CategoryName = category.Name, Products = prodGroup };
http://msdn.microsoft.com/pt-br/library/bb311040.aspx
Melhor referência de Exemplos de LINQ. 101 exemplos testados:
https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
Outras dúvidas:
http://stackoverflow.com/questions/5307731/linq-to-sql-multiple-joins-on-multiple-columns-is-this-possible
- Sugerido como Resposta Deric Ferreira sexta-feira, 24 de outubro de 2014 11:56
-