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,求指导
展开
 我来答
阳光的雷咩咩
2014-06-12 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7827万
展开全部
上面的表和你下面的查询语句是什么关系,与你的提问的分组又是什么关系?
表的字段应该标出来。如果表和查询是对应的,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);
            }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式