.net 如何将这个sql查询转换成linq查询,我被分组和求和部分卡住了

brccelvz  于 2023-02-26  发布在  .NET
关注(0)|答案(1)|浏览(104)

我的SQL查询如下所示:SQL查询返回与每个colorwaysid相关联的收入

select p.colorwaysid,sum(oivs.actItemvalue+oivs.custom) as revenue 
from Product p inner join eshakti_corp..orderitemvaluesplit oivs on p.productid = oivs.productid
inner join eshakti_corp..orders o on oivs.orderid = o.orderid
where colorwaysid is not null and o.crdate >= '4/1/2022' and o.crdate <= '4/30/2022'
group by p.colorwaysid order by revenue desc

到目前为止,我已经在LINQ C#中完成了这一工作

from product in eshaktiDb.Products 
join oivs in corpDb.OrderitemvalueSplits on product.ProductId equals oivs.Productid
join order in corpDb.Orders on oivs.Orderid equals order.OrderID
where product.ColorWaysId != null && order.CrDate >= fromDate && order.CrDate <= toDate

请帮助我创建完整的Linq查询。谢谢!

kqqjbcuj

kqqjbcuj1#

group by部分很明显:

var query = 
    from product in eshaktiDb.Products 
    join oivs in corpDb.OrderitemvalueSplits on product.ProductId equals oivs.Productid
    join order in corpDb.Orders on oivs.Orderid equals order.OrderID
    where product.ColorWaysId != null && order.CrDate >= fromDate && order.CrDate <= toDate
    group ovis by p.colorwaysid into g
    select new
    {
        colorwaysid = g.Key,
        revenue = g.Sum(o => o.actItemvalue + o.custom)
    };

请注意,如果正确配置了导航属性,则可以省略联接。

相关问题