我有一张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
答案 0 :(得分:0)
我肯定会使用像DevXpress这样的PivotGrid控件用于winforms和ASP.NET。
通过这种控制,您可以在设计时创建枢轴,甚至允许最终用户在运行时拖放字段并决定旋转逻辑,而不是保存其首选项。用于一些高级报告工具,用户喜欢它。