写一条sql语句让你变为所要求的表
教师号星期号是否有课12有13有21有32有12有写一条sql语句让你变为这样的表教师号星期⼀一星期⼆二星期三1212131(各星期下的数字表...
教师号 星期号 是否有课
1 2 有
1 3 有
2 1 有
3 2 有
1 2 有
写一条sql语句让你变为这样的表
教师号 星期⼀一 星期⼆二 星期三
1 2 1
2 1
3 1
(各星期下的数字表示:对应的教师在星期几已经排的课数) 展开
1 2 有
1 3 有
2 1 有
3 2 有
1 2 有
写一条sql语句让你变为这样的表
教师号 星期⼀一 星期⼆二 星期三
1 2 1
2 1
3 1
(各星期下的数字表示:对应的教师在星期几已经排的课数) 展开
2个回答
展开全部
SELECT s.教师号,
(CASE WHEN 星期号=1 THEN s.counts ELSE 0 END) '星期一',
(CASE WHEN 星期号=2 THEN s.counts ELSE 0 END) '星期二',
(CASE WHEN 星期号=3 THEN s.counts ELSE 0 END) '星期三',
(CASE WHEN 星期号=4 THEN s.counts ELSE 0 END) '其他'
FROM
(SELECT t.教师号,t.星期号,COUNT(星期号) counts
FROM Table t WHERE 是否有课='有' GROUP BY 教师号,星期号) s GROUP BY 教师号
(CASE WHEN 星期号=1 THEN s.counts ELSE 0 END) '星期一',
(CASE WHEN 星期号=2 THEN s.counts ELSE 0 END) '星期二',
(CASE WHEN 星期号=3 THEN s.counts ELSE 0 END) '星期三',
(CASE WHEN 星期号=4 THEN s.counts ELSE 0 END) '其他'
FROM
(SELECT t.教师号,t.星期号,COUNT(星期号) counts
FROM Table t WHERE 是否有课='有' GROUP BY 教师号,星期号) s GROUP BY 教师号
展开全部
先case when 语句判断或者 union
然后分组查询下就可以了
然后分组查询下就可以了
追问
求详细步骤。
追答
select 教师号,sum(星期一) as 星期一,sum(星期二) as 星期二,sum(星期三) as 星期三,sum(星期四) as 星期四,sum(星期五) as 星期五,
from(select 教师号,
case when 星期号=1 then 1 else 0 end as 星期一,
case when 星期号=2 then 1 else 0 end as 星期二,
case when 星期号=3 then 1 else 0 end as 星期三,
case when 星期号=4 then 1 else 0 end as 星期四,
case when 星期号=5 then 1 else 0 end as 星期五
from Tab
)A
group by 教师号
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询