ASP.NET数据透视表:如何在数据库中只使用两个表

时间:2011-10-17 04:12:35

标签: asp.net asp.net-controls

我有一张Excel表格,列出了公司所有员工的一些必修培训课程。该列表非常庞大且长,我需要将其纳入公司网站。因此,我正在考虑将数据透视表与存储过程一起使用,以便通过在将来添加新员工或课程来使表格灵活扩展。

现在的主要问题是如何在数据库中只使用两个表,即Employee表和Courses Table。

员工表包括:员工姓名,ID,组织,课程ID 课程表包括:课程名称,课程ID

我想要一个透视表,列出第一列的员工姓名,并列出第一行的课程。然后它会显示每个员工在每个课程下的(是或否)值,表明员工是否参加了这门课程。最后,我希望在表的最后一行看到总数为

我知道数据透视表的语法,我试图理解它并让它适用于这种情况,但我失败了。

我正在使用这个宝贵的资源: http://www.kodyaz.com/articles/t-sql-pivot-tables-in-sql-server-tutorial-with-examples.aspx

如何在这种情况下使用它?有什么提示吗?我只想知道查询的结构

我的初步查询是:

 select
  *
from
(
  select
    employee.Name, employee.id, employee.Organization, courses.id, courses.name
  from employee, courses

) DataTable
PIVOT
(
  SUM(ID)
  FOR Name
  IN (
    [safety awareness],[general safety orientation],[sms orientation],[emergency responses]
  )
) PivotTable

1 个答案:

答案 0 :(得分:0)

我肯定会使用像DevXpress这样的PivotGrid控件用于winforms和ASP.NET。

通过这种控制,您可以在设计时创建枢轴,甚至允许最终用户在运行时拖放字段并决定旋转逻辑,而不是保存其首选项。用于一些高级报告工具,用户喜欢它。