C# 将此SQL Server查询转换为具有total的Linq

C# 将此SQL Server查询转换为具有total的Linq,c#,sql-server,entity-framework,linq,C#,Sql Server,Entity Framework,Linq,我有此SQL Server查询,希望将其转换为Linq: SELECT [FMonth], [Locationn], (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 1) AS Jan, (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 2) AS Feb, (SELECT SUM(Sale) FROM[Fuels] WHERE FMonth = 3) AS March,

我有此SQL Server查询,希望将其转换为Linq:

SELECT
    [FMonth],
    [Locationn],
    (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 1) AS Jan,
    (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 2) AS Feb,
    (SELECT SUM(Sale) FROM[Fuels] WHERE FMonth = 3) AS March,
    (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 4) AS April,
    (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 5) AS May,
    (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 6) AS Jun,
    (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 7) AS Jul,
    (SELECT SUM(Sale) FROM [Fuels] WHERE FMonth = 8) AS  Aug 
FROM 
    [COSAuthNew].[dbo].[Fuels]
上述查询的结果在pic perfect中,但我需要
total
列中所有行的总数:

数据存储方式如下:

CompanyName | Month | Sale
H&S         |  Jan  | 1200
H&S         |  Feb  | 5000 
H&S1        |  March| 8000 
但我想展示如下:

CompanyName| Jan |  Feb | March | Total
H&S        |1200 | 5000  | 7000 | 13200
H&S1       |2200 | 6000  | 8000 | 16200

并且在视图上显示相同的数据

由于您没有提供任何dbcontext或实体结构,linq查询将如下所示,用于1-6月销售额和总计。您需要按companyname(位置)对行进行分组,然后在聚合函数SUM中使用条件值

var result = fules.GroupBy(g => g.CompanyName)
             .Select(s=> new {
                CompanyName = s.Key,
                Jan = s.Sum(x=> x.Month == 1? x.Sale : 0),
                Feb = s.Sum(x => x.Month == 2 ? x.Sale : 0),
                Mar = s.Sum(x => x.Month == 3 ? x.Sale : 0),
                Apr = s.Sum(x => x.Month == 4 ? x.Sale : 0),
                May = s.Sum(x => x.Month == 5 ? x.Sale : 0),
                June = s.Sum(x => x.Month == 6 ? x.Sale : 0),
                Total = s.Sum(x=> x.Sale)
            });

到目前为止你试过什么?:)感谢您的回复,您能将此Sql查询转换为Linq吗?为什么不在Sql中使用分组?有很多web资源,您可以在其中创建付费作业并请求专业开发人员帮助。如果您尝试了一些东西但没有成功,我们可以尝试帮助您解决具体问题,但无法解决问题。我相信您必须使用SQL和LINQ中不同的东西来使用GROUP和PIVOT是的,但亲爱的,如何在视图中显示数据?我想这应该是另一个问题,这个答案是针对问题中的主题的。