当前位置: 代码迷 >> Sql Server >> 【课表】这个表该如何建合适
  详细解决方案

【课表】这个表该如何建合适

热度:90   发布时间:2016-04-27 11:20:48.0
【课表】这个表该怎么建合适?

如图,我想实现如图的显示效果。但是一直苦于表结构的设计。
求大神解救。

以及后来查询的sql语句该怎样写,才能实现如图的显示效果。
十分感谢。

------解决方案--------------------
SQL code
[curriculumId] [bigint] IDENTITY(1,1) NOT NULL,    [grade] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,    [collegeId] [int] NOT NULL,    [collegeCode] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,    [collegeName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,    [professionalId] [int] NOT NULL,    [professionalName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,    [courseId] [int] NOT NULL,    [courseName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,    [courseHours] [int] NULL,    [courseType1] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,    [courseType2] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,    [classId] [int] NOT NULL,    [className] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,    [teacherId] [int] NOT NULL,    [teacherName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,    [classRoomId] [int] NULL,    [classRoomName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,    [classRoomNo] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,    [week] [int] NOT NULL,    [time] [int] NOT NULL,    [festival] [int] NOT NULL,
------解决方案--------------------
建表应该不是重点,关键是显示。可以用DataGrid控件,复合表头,合并单元格!
------解决方案--------------------
看不到图。。。。。。。。。
------解决方案--------------------
查询你这个效果不是问题
------解决方案--------------------
表结构。姓名。星期,时间段。是否有课。

后面行转列就是你要的。

但是显示成那样的结果。用报表控件去做。
------解决方案--------------------
建议 建立两个表 一个 hrShiftM, 一个 hrShiftD

hrShiftM 就是你提示的图一样建立,

hrShiftD 是在你保存的时候, 将 每个人保存成 每人每星期几什么部分打勾 的单条记录形式。
以方便后续 联合表使用。。

体会一下就明白了, 这跟 人事排班 一样的形式。
  相关解决方案