开发者

LINQ query using join and aggregate functions

开发者 https://www.devze.com 2023-01-12 23:15 出处:网络
Urgh...my LINQ has suddenly taken a turn for the worse!! I have two tables and want to join and perform aggregate functions upon the tables.

Urgh...my LINQ has suddenly taken a turn for the worse!!

I have two tables and want to join and perform aggregate functions upon the tables.

Firstly, is this possible, I am assuming it is, and secondly, how do I handle the aggregate functions? As part of the same LINQ statement?

The SQL statement will look a bit like this:

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)

Obviously, the 'AS' sections can be ignored, I can rename those in the controls.

Any hints, tips, pointers would be greatly appreciated.


Try to do something as below make use of joins with the into keyword help you to achieve your 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};  

Check this post for more detail : LINQ Having Clause and Group By with condition

0

精彩评论

暂无评论...
验证码 换一张
取 消