很复杂的SQL查询语句,没转过弯来,希望大家帮忙
发布网友
发布时间:2022-04-08 20:38
我来回答
共4个回答
热心网友
时间:2022-04-08 22:08
行列转置问题,这样就好了:
select 学校,count(case 通过状态 when 1 then 1 end) 通过个数,
count(case 通过状态 when 2 then 1 end) 未通过个数,
count(case 通过状态 when 0 then 1 end) 待定个数
from 表
group by 学校
热心网友
时间:2022-04-08 23:26
用子查询比较容易理解,刚才表别名取错了,现在改了一下
select
distinct a.学校,
(
select sum(通过状态)
from 表 aa
where aa.学校=a.学校
and aa.通过状态 = 1
) as 通过个数,
(
select sum(通过状态)
from 表 ab
where ab.学校=a.学校
and ab.通过状态 = 2
) as 未通过个数,
(
select sum(通过状态)
from 表 ac
where ac.学校=a.学校
and ac.通过状态 = 0
) as 待定个数
from 表 a
热心网友
时间:2022-04-09 01:00
select 学校,isnull(sum(case when 状态=0 then 1 end),'0') 待定,
isnull(sum(case when 状态 =1 then 1 end),'0') 通过,
isnull(sum(case when 状态=2 then 1 end),'0') 未通过 from 表group by 学校
这样可以
热心网友
时间:2022-04-09 02:52
select a.学校,
sum(case when a.通过状态=1 then 1 else 0 end) as 通过个数,
sum(case when a.通过状态=2 then 1 else 0 end) as 未通过个数,
sum(case when a.通过状态=0 then 1 else 0 end) as 待定个数
from 表 a
order by a.学校
group by a.学校