Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Group by获取Linq中字段的和_C#_Sql_Linq_Group By_Sum - Fatal编程技术网

C# 使用Group by获取Linq中字段的和

C# 使用Group by获取Linq中字段的和,c#,sql,linq,group-by,sum,C#,Sql,Linq,Group By,Sum,我有一个SQL: SELECT ApplicationNo,COUNT(ApplicationNo) AS CNT, SUM(Amount) as AMNT FROM Payments where (TYPE=1 AND Position=1) and (Date>='2011-01-01') and (Date<='2012-01-01') GROUP BY ApplicationNo 选择ApplicationNo,COUNT(ApplicationNo)作为CNT,SU

我有一个SQL:

 SELECT ApplicationNo,COUNT(ApplicationNo) AS CNT, SUM(Amount) as AMNT 
FROM Payments where (TYPE=1 AND Position=1)  and (Date>='2011-01-01')
and (Date<='2012-01-01')
GROUP BY ApplicationNo
选择ApplicationNo,COUNT(ApplicationNo)作为CNT,SUM(Amount)作为AMNT
从付款(类型=1,职位=1)和(日期>='2011-01-01')
和(日期=起始日期和付款日期a.金额)
});
如果我在Linq中编写相同的代码,然后在最后分组,我就不会得到相同的结果。

DateTime fromDate=newdatetime(2011,1,1);
DateTime fromDate = new DateTime(2011, 1, 1);
DateTime toDate = new DateTime(2011, 1, 1);

var query = from p in db.Payments
            where p.Type == 1 && p.Position == 1 && 
            p.Date >= fromDate && p.Date <= toDate
            group p by p.ApplicationNo into g
            select new {
                 ApplicationNo = g.Key,
                 CNT = g.Count(),
                 AMNT = g.Sum(x => x.Amount)
           };
DateTime toDate=新的日期时间(2011,1,1); var query=从p到db.付款 其中p.Type==1&&p.Position==1&& p、 日期>=起始日期和付款日期x金额) };
这里
db
是您的上下文类。

DateTime fromDate=newdatetime(2011,1,1);
DateTime toDate=新的日期时间(2011,1,1);
var query=从p到db.付款
其中p.Type==1&&p.Position==1&&
p、 日期>=起始日期和付款日期x金额)
};

这里的
db
是您的上下文类。

您可以发布您尝试过的代码吗?您可以发布您尝试过的代码吗?如果您使用单个键进行分组,则不需要为此创建匿名对象。此外,我建议您在较短的上下文中使用较短的变量名(即在这种情况下,
p
就足够了)。是的,您的查询应该生成正确的结果。如果您使用单个键进行分组,则不需要为此创建匿名对象。此外,我建议您在较短的上下文中使用较短的变量名(即在这种情况下,
p
就足够了)。是的,您的查询应该会产生正确的结果。
DateTime fromDate = new DateTime(2011, 1, 1);
DateTime toDate = new DateTime(2011, 1, 1);

var query = from p in db.Payments
            where p.Type == 1 && p.Position == 1 && 
            p.Date >= fromDate && p.Date <= toDate
            group p by p.ApplicationNo into g
            select new {
                 ApplicationNo = g.Key,
                 CNT = g.Count(),
                 AMNT = g.Sum(x => x.Amount)
           };