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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top