【问题标题】:A list in the column header with ASP NET and Linq [closed]带有 ASP NET 和 Linq 的列标题中的列表 [关闭]
【发布时间】:2016-08-25 08:05:36
【问题描述】:

我有这个结构

我想得到以下结果

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

【问题讨论】:

  • 我担心的现实是你需要展示你所做的一些努力/工作......这就是你被打分的原因......codeproject.com/Articles/26657/Simple-LINQ-to-SQL-in-C
  • 请展示你做了什么。那么我们可以提供帮助
  • 我需要知道如何在 SQL 中做到这一点,只要把我放在正确的位置上,我怎样才能把工作列表放在标题中?是 Group by ,....任何功能都可以提供帮助,我什至不知道如何在 google 中查找它:(
  • 简单的答案是你不能在 sql 中使用它。您必须编写代码才能在数据表中创建此结构

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


【解决方案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 表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2011-08-18
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多