以下是原Sql语句:
dglist = GetExamInfo(); //获取试题信息 for (int i = 0; i < dglist.Count; i++) { //其中 PExamName 、PState 是 PerScore 表中的字段 sqlstr += " max(case when PExamName='" + dglist[i].HExamName + "' then PState else null end)'" + dglist[i].HExamName + "',"; } if (sqlstr.Length > 0) sqlstr = sqlstr.Substring(0, sqlstr.Length - 1); sqlstr = " select PTName '队名', SUM(POkScore+PAdjustScore) '总分'," + sqlstr + " from PerScore where PHallID='" + Guid.Parse(Session["hid"].ToString()) + "' group by PTID,PTName order by '总分' desc ";
以下是上面sql语句执行时的语句:(假设dglist有三条记录,分别是“合并利润表”、“利润表试题”、“资金日报表”)
select PTName '队名', SUM(POkScore+PAdjustScore) '总分', max(case when PExamName='合并利润表' then PState else null end)'合并利润表', max(case when PExamName='利润表试题' then PState else null end)'利润表试题', max(case when PExamName='资金日报表' then PState else null end)'资金日报表', from PerScore where PHallID='eecb075c-3862-4519-b966-7e9e4f287890' group by PTID,PTName order by '总分' desc
现在我希望把上面这个sql语句转换成linq to sql ,谢谢!
注:红色PerScore表示数据表,咖啡色注明的表示是这张表的字段。
阿晨1998
慕码人8056858
相关分类