ASP NET和Linq列标题中的列表

时间:2016-08-25 08:05:36

标签: c# sql asp.net linq linq-to-sql

我有这个结构  enter image description here

我希望得到以下结果 enter image description here

这意味着我需要将作业列表放在带有Linq / C#的标题中,你们可以帮忙吗?我希望我的问题很清楚:)

1 个答案:

答案 0 :(得分:1)

例如,您正在寻找PIVOT MS SQL函数check this answer

你可以不用PIVOT这样做:

SELECT 
   p.PersonName, 
   SUM(CASE WHEN j.IdJob IS NULL THEN 0 ELSE 1 END ) [IT],
   SUM(CASE WHEN j1.IdJob IS NULL THEN 0 ELSE 1 END ) [Teacher],
   SUM(CASE WHEN j2.IdJob IS NULL THEN 0 ELSE 1 END ) [Doctor]
FROM Person p
   LEFT OUTER JOIN Job j ON j.IdJob = p.IdJob AND j.JobName = 'IT'
   LEFT OUTER JOIN Job j1 ON j1.IdJob = p.IdJob AND j1.JobName = 'Teacher'
   LEFT OUTER JOIN Job j2 ON j2.IdJob = p.IdJob AND j2.JobName = 'Doctor'
GROUP BY p.PersonName

无论如何,没有简单明了的方法来制作PIVOT表而不枚举所有列名。