consulta LINQ utilizando unirse y funciones de agregado
-
01-10-2019 - |
Pregunta
Urgh ... mi LINQ ha tomado de repente un giro a peor !!
Tengo dos tablas y quiero unir y llevar a cabo las funciones de agregado sobre las tablas.
En primer lugar, ¿es esto posible, estoy asumiendo que es, y en segundo lugar, ¿Cómo se gestionan las funciones de agregación? Como parte de la misma declaración de LINQ?
La sentencia SQL se verá un poco como esto:
SELECT t1.Col1, t1.Col2, t1.Col3, t2.Col10,
t2.Col11, SUM(t2.Col4) AS TotalPurchases, COUNT(t1.Col5) AS ProductCount,t2.Col7,
t2.Col6, t2.Col8, t2.Col9
FROM t1 INNER JOIN
t2 ON t1.Col1 = t2.Col1 AND t1.Col5 = t2.Col5 AND
t1.Col2 = t2.Col2
GROUP BY t1.Col1, t1.Col2, t1.Col3, t2.Col7, t2.Col6,
t2.Col8, t2.Col9, t2.Col10, t2.Col11
HAVING (t1.Col1 = @p1) AND (t1.Col2 = @p2) AND (t1.Col3 = @p3)
Obviamente, las secciones de la 'AS' pueden ser ignorados, que puede cambiar el nombre de los de los controles.
¿Alguna pista, consejos, punteros sería muy apreciada.
Solución
Trate de hacer algo como a continuación se une a hacer uso de la palabra into
ayudarle a alcanzar sus TAKS
var query = from t1 in prodDtcx.t1
join t2 in prodDtcx.t2 on t1.ID equals t2.ID
group t1.col1,t2.col2 by new {col1= t1.col1,col2= t2.col2,col3 = t1.col2} into g
where g.col3 >= @variable
select new { Col1 = g.col1, Col2 = g.col2};
Comprobar este post para más detalles: LINQ Tener Cláusula y Grupo Por con la condición