求Linq 语句,[面试题]

hetengfei_ 2012-03-12 07:10:13


这个数据源,用下面的sql 语句,可以转成如下结果://好象有点复杂了。

select count([t0].id),avg([t0].Fsalary),[t0].年龄段 from
(
select id,
(
case
when (Fage<20) then '<20'
when (Fage>=20 and Fage<30)then '20 -30'
when (Fage>=30 and Fage<40)then '30 -40'
when (Fage>=40 )then '>40'
else 'error'
end
) AS '年龄段',
FAge ,
FName,
fsalary
from T_Employee
) as [t0]
group by [t0].年龄段

[人数] [平均工资] [年龄段]




但是,要求用 Linq 来写, 谁能给出 Linq 语句,
...全文
359 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2012-03-12
  • 打赏
  • 举报
回复
group a by new { range = a.age < 20 ? "<20" : (a.age >= 20 && a.age <= 30 ? "20-30" : ">30") } into g
=========
group a by new { range = a.age < 20 ? "<20" : (a.age >= 20 && a.age <= 30 )? "20-30" : ">30" } into g

http://blog.csdn.net/q107770540/article/details/6270693
tptptp00 2012-03-12
  • 打赏
  • 举报
回复

var q = (from a in list
group a by new { range = a.age < 20 ? "<20" : (a.age >= 20 && a.age <= 30 ? "20-30" : ">30") } into g
select new {
key = g.Key,
count = g.Count(),
salary = g.Average(b=>b.salary)

});
foreach (var item in q)
{
Response.Write(item.count+" "+item.salary+" "+item.key.range+" <br />");
}

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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