查询获取现有值的标志

时间:2013-09-03 13:06:22

标签: sql oracle pivot

我想知道特定学院是否有特定课程,   我有3个机构

这是我的表格,其中包含机构下的课程数据

Course_types
unique_id,course_id,course_name,institution_id
1         1          economics  1
2         1          economics  2
3         1          economics  3
4         2          Science    1
5         2          Science    3

所需的输出类似于

course_id,course_name,inst_1,inst_2,inst_3 

1        economics     yes    yes    yes
2        Science       yes    No      yes

我尝试过旋转,但是它在一个机构下计算,但是我无法将标记设置为“是”或“否”

感谢您的帮助

这是我试过的

select   course_id,course_name,

max(decode(institution_id, '1' ,'yes','no')) inst_1 ,

max( decode(institution_id, '2' ,'yes','no')) inst_2,

max(decode(pt.institution_id, '3' ,'yes','no')) inst_3,
from course_types
group by course_id,course_name

1 个答案:

答案 0 :(得分:0)

您的代码应该可以工作,但pt.表别名(我猜这是一个错字)除外。以下修复了表别名问题,并从常数中删除引号(我猜institution_id是数字):

select course_id, course_name,
       max(decode(institution_id, 1, 'yes', 'no')) as inst_1 ,
       max(decode(institution_id, 2, 'yes', 'no')) as inst_2,
       max(decode(institution_id, 3, 'yes', 'no')) as inst_3,
from course_types
group by course_id, course_name;

这怎么会失败?