首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求解决!解决思路

2012-03-14 
求解决!!select sGuid,max(case dName when 人事部 then dName else end) as hr,max(case dName when

求解决!!
select sGuid,
max(case dName when '人事部' then dName else '' end) as hr,
max(case dName when '临时部门' then dName else '' end)as temp,
max(case dName when '财务部' then dName else '' end) as mony
from (
select Staff.Guid as sGuid,isCharge,(Department.Name)dName from Staff
inner join adminType on Staff.Stationid=adminType.ID
inner join admin_Deptadmin on Staff.Code = admin_Deptadmin.loginID 
inner join Department on admin_Deptadmin.DeptId= Department.Id
where adminType.Level=1 and Staff.bureauid=1)a group by sGuid

将以上sql语句转换成linq语句 实现相同的效果,求高手解决!!

[解决办法]

C# code
var query=from a in (from sf in Staffjoin at in adminType on sf.Stationid equals ad.IDjoin ad in admin_Deptadmin on sf.Code equals ad.loginIDjoin dp in Department on ad.DeptId equals dp.Idwhere at.Level==1 && sf.bureauid==1select new {  sGuid=sf.Guid,   isCharge=sf.isCharge,   dName=dp.Name})group a by a.sGuid into gselect new {  sGuid=g.Key,  hr=g.Where(m=>m.dName=="从事部").Max(),  temp=g.Where(m=>m.dName=="临时部门").Max(),  mony=g.Where(m=>m.dName=="财务部").Max()};
[解决办法]
hr=g.Where(m=>m.dName=="从事部").Select(m=>m.dName).Max(),
temp=g.Where(m=>m.dName=="临时部门").Select(m=>m.dName).Max(),
mony=g.Where(m=>m.dName=="财务部").Select(m=>m.dName).Max()

只提供思路参考

热点排行