当前位置: 代码迷 >> Sql Server >> sql 分类数量统计解决思路
  详细解决方案

sql 分类数量统计解决思路

热度:99   发布时间:2016-04-24 09:50:32.0
sql 分类数量统计
专业         原因类型       状态       A1    A2
电气 本专业原因 已处理 F T
电气 本专业原因 已处理 T T
电气 采购原因 已处理 F F
电气 上游专业 待处理 F T
电气 上游专业 已处理 T F

结果如下,只统计同专业、同类型、同状态中T的数量

专业     原因类型          状态        A1     A2
电气     本专业原因     已处理      1        2
电气 采购原因 已处理 0   0
电气 上游专业 待处理 0   1
电气 上游专业 已处理 1   0


------解决思路----------------------
SELECT
[专业]
,[原因类型]
,[状态]
,SUM(CASE[A1]WHEN'T'THEN 1 ELSE 0 END)A1
,SUM(CASE[A2]WHEN'T'THEN 1 ELSE 0 END)A2
FROM
tablename
GROUP BY
[专业]
,[原因类型]
,[状态]
你参考一下
------解决思路----------------------

select * from 
(select 专业,原因类型,状态,COUNT(A1) as A1
 from tablename 
where A1='T' 
 group by 专业,原因类型,状态) as a join
 
 (select 专业,原因类型,状态,COUNT(A2) as A1
 from tablename 
where A2='T' 
 group by 专业,原因类型,状态) as b
 on a.专业=b.专业 and 
 a.原因类型=b.原因类型 and 
 a.状态=b.状态
  相关解决方案