linq问题

gsj520cy1314 2015-10-07 01:42:33
有一张表A:数据以下
1,小明,3岁,男
2,小哥,5岁,男
3,小弟,8岁,男

一张表B:数据以下
ID,Name,UserId,Score,Type
1,语文,1,70分,简单
2,数学,1,80分,复杂
3,英语,1,90分,简单
4,语文,2,90分,较简单
5,数学,2,50分,较简单
6,英语,2,50分,较简单
7,语文,3,10分,较简单
8,数学,3,20分,复杂

现在想要写个linq,查询出来是这样的:
ID,姓名,总共科目数,简单科目数,较简单科目数,复杂科目数
1,小明,3,2,0,1
2,小哥,3,0,3,0
3,小弟,2,0,1,1

这种的linq如何写啊,求高手帮忙!目前这个统计每个科目数比较麻烦
...全文
848 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
QINGWP 2017-10-15
  • 打赏
  • 举报
回复
var a=from item1 in 表A join item2 in 表B in item1.ID equal item2.UserId select new { ID=item1.ID 姓名=item1.Name 科目总条数=表B.where(s=>s.UserId.equal(item1.ID)).ToList().Count 简单科目数=表B.where(s=>s.UserId.equal(item1.ID)&&s.Type.equal("简单")).ToList().Count 较简单科目数=表B.where(s=>s.UserId.equal(item1.ID)&&s.Type.equal("较简单")).ToList().Count 复杂科目数=表B.where(s=>s.UserId.equal(item1.ID)&&s.Type.equal("复杂")).ToList().Count }
qq_15148111 2017-10-14
  • 打赏
  • 举报
回复
db.A.AsEnumerable().select(item=>new{ item.UserId, item.UserName, 总科目数 = db.B.b.Count(s => s.UserId==item.UserId), 简单科目数 = db.B.Count(s => s.Type == "简单" && s.UserId==item.UserId), 较简单科目数 = db.B.Count(s => s.Type == "较简单"&& s.UserId==item.UserId), 复杂科目数 = db.B.Count(s => s.Type == "复杂"&& s.UserId==item.UserId) });
devmiao 2015-10-08
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
学习一下sql,学学如何进行“做外连接运算”以及“统计函数”。
为什么要学sql?
runerback 2015-10-08
  • 打赏
  • 举报
回复
引用 4 楼 devmiao 的回复:
为什么要学sql?
。。。
ajianchina 2015-10-07
  • 打赏
  • 举报
回复

var query = TableA.GroupJoin(TableB, a => a.UserId, b => b.UserId, (a, b) => new
{
	a.UserId,
	a.UserName,
	总科目数 = b.Count(),
	简单科目数 = b.Count(s => s.Type == "简单"),
	较简单科目数 = b.Count(s => s.Type == "较简单"),
	复杂科目数 = b.Count(s => s.Type == "复杂")
});
puler 2015-10-07
  • 打赏
  • 举报
回复
取巧的办法,你写好SQL语句,试试用软件直接转成LinQ
  • 打赏
  • 举报
回复
学习一下sql,学学如何进行“做外连接运算”以及“统计函数”。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧