linq查询分组统计求和,带有条件查询
数据表publicIEnumerable<userDTO>GetUser(userDTOud){varquery=(fromqincontext.userwhereq.d...
数据表
public IEnumerable<userDTO> GetUser(userDTO ud){
var query = (from q in context.user
where q.date == ud.date //日期
select new userDTO() //封装数据
{
name= q.name,//姓名
price= q.price,//价格
use= q.use ,//用途
date=q.date //日期
}
).Distinct();
//判断姓名
if ((!string.IsNullOrEmpty(ud.name)))//条件是否为空
{
query = query.Where(ct => ct.name.Contains(ud.name));
}
//判断用途
if ((!string.IsNullOrEmpty(ud.use)))
{
query = query.Where(ct => ct.use.Contains(ud.use));
}
return query.ToList();
}
以上是小弟写的带条件查询的代码,现在我想做一个分组,并把价格求和,返回ToList,求指导 展开
public IEnumerable<userDTO> GetUser(userDTO ud){
var query = (from q in context.user
where q.date == ud.date //日期
select new userDTO() //封装数据
{
name= q.name,//姓名
price= q.price,//价格
use= q.use ,//用途
date=q.date //日期
}
).Distinct();
//判断姓名
if ((!string.IsNullOrEmpty(ud.name)))//条件是否为空
{
query = query.Where(ct => ct.name.Contains(ud.name));
}
//判断用途
if ((!string.IsNullOrEmpty(ud.use)))
{
query = query.Where(ct => ct.use.Contains(ud.use));
}
return query.ToList();
}
以上是小弟写的带条件查询的代码,现在我想做一个分组,并把价格求和,返回ToList,求指导 展开
1个回答
展开全部
上面的表和你下面的查询语句是什么关系,与你的提问的分组又是什么关系?
表的字段应该标出来。如果表和查询是对应的,here q.date == ud.date已经限制了所有的日期相同,为什么表里又会出现1~·6这些日期?日期为什么是数字?
表的字段应该标出来。如果表和查询是对应的,here q.date == ud.date已经限制了所有的日期相同,为什么表里又会出现1~·6这些日期?日期为什么是数字?
更多追问追答
追答
在你上面所有的查询结果的基础上再分组是吧,大体这样写
//query是你上次return的
var grouped = query.GroupBy(x => x.name).Select(x => new
{
date = x.First().date,
name = x.Key,
sum = x.Sum(y => y.price),
use = x.First().use
});
// 测试
foreach (var v in grouped)
{
Console.Write("{0} {2} {2} {3}", v.date, v.name, v.sum, v.use);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询