这个统计sql语句怎么写???

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:29:22
表1字段为:
ID 员工姓名 申请类型 审核状态
1 yy 1 1
2 tt 2 2

表2字段为:
ID 申请类型
1 学习奖
2 优秀奖
3 委屈奖

表3字段为:
ID 审核状态
1 未审核
2 审核中
3 审核通过
4 审核未通过

现在想写个查询统计各申请类型审核状态数:

学习奖 未审核记录数 审核中记录数 审核通过记录数 审核未通过记录数

请问这个sql语句要怎么写啊??????
不好意思我没说清楚,我的意思是统计各申请类型的审核状态数,比如有4种申请类型,那就是:

学习奖 未审核记录数 审核中记录数 审核通过记录数 审核未通过记录数
优秀奖 未审核记录数 审核中记录数 审核通过记录数 审核未通过记录数
委屈奖 未审核记录数 审核中记录数 审核通过记录数 审核未通过记录数

以上的数据要在一个表里显示。谢谢!!!

select '学习奖' as 申请类型,
sum(case when 审核状态= 1 then 1 else 0 end)as 未审核记录数,
sum(case when 审核状态= 2 then 1 else 0 end)as 审核中记录数,
sum(case when 审核状态= 3 then 1 else 0 end)as 审核通过记录数,
sum(case when 审核状态= 4 then 1 else 0 end)as 审核未通过记录数
from 表1
where 申请类型=1
union all
select '优秀奖' as 申请类型,
sum(case when 审核状态= 1 then 1 else 0 end)as 未审核记录数,
sum(case when 审核状态= 2 then 1 else 0 end)as 审核中记录数,
sum(case when 审核状态= 3 then 1 else 0 end)as 审核通过记录数,
sum(case when 审核状态= 4 then 1 else 0 end)as 审核未通过记录数
from 表1
where 申请类型=2
union all
select '委屈奖' as 申请类型,
sum(case when 审核状态= 1 then 1 else 0 end)as 未审核记录数,
sum(case when 审核状态= 2 then 1 else 0 end)as 审核中记录数,
sum(case when 审核状态= 3 then 1 else 0 end)as 审核通过记录数,
sum(case when 审核状态= 4 then 1 else 0 end)as 审核未通过记录数
from 表1
where 申请类型=3

select a.*,表2.申请类型 from
(select 申请类型,
sum(case when 审核状态= 1 then 1 else 0 end)a