如图,我想实现如图的显示效果。但是一直苦于表结构的设计。
求大神解救。
以及后来查询的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 是在你保存的时候, 将 每个人保存成 每人每星期几什么部分打勾 的单条记录形式。
以方便后续 联合表使用。。
体会一下就明白了, 这跟 人事排班 一样的形式。