需求
建表語句
CREATE TABLE CourseMaster
(course_id INTEGER PRIMARY KEY,
course_name VARCHAR(32) NOT NULL);
INSERT INTO CourseMaster VALUES(1, '會計入門');
INSERT INTO CourseMaster VALUES(2, '財務知識');
INSERT INTO CourseMaster VALUES(3, '簿記考試');
INSERT INTO CourseMaster VALUES(4, '稅務師');
CREATE TABLE OpenCourses
(month INTEGER ,
course_id INTEGER ,
PRIMARY KEY(month, course_id));
INSERT INTO OpenCourses VALUES(200706, 1);
INSERT INTO OpenCourses VALUES(200706, 3);
INSERT INTO OpenCourses VALUES(200706, 4);
INSERT INTO OpenCourses VALUES(200707, 4);
INSERT INTO OpenCourses VALUES(200708, 2);
INSERT INTO OpenCourses VALUES(200708, 4);
解答
SELECT
course_name,
case when course_id in (select course_id from opencourses WHERE month=200706) then 'O' ELSE 'X' end as '六月',
case when course_id in (select course_id from opencourses WHERE month=200707) then 'O' ELSE 'X' end as '七月',
case when course_id in (select course_id from opencourses WHERE month=200708) then 'O' ELSE 'X' end as '八月'
FROM
coursemaster t
sql思維很重要