日期:2014-05-18 浏览次数:20569 次
SELECT SUM(CASE WHEN 工资类型='年薪' THEN 1 ELSE 0 END) nxzQTY,SUM(CASE WHEN 工资类型='计时' THEN 1 ELSE 0 END) jsQTY, SUM(CASE WHEN 工资类型='计件' THEN 1 ELSE 0 END) jjQTY,SUM(CASE WHEN ISNULL(是否固定工,0)=1 THEN 1 ELSE 0 END) gdgQTY, SUM(CASE WHEN ISNULL(是否超过十年工,0)=1 THEN 1 ELSE 0 END) up10QTY
with tb1 as ( select '计时' as 工资类型,'是' as 是否固定工,'是' as 是否超过十年工,3000 as 应发工资 union all select '计件','是','否',4000 union all select '年薪','否','否',4000 union all select '计件','否','否',3000 ) select distinct *, sum(CASE WHEN 工资类型='年薪' THEN 1 ELSE 0 END) over() as 年薪人数, sum(CASE WHEN 工资类型='计时' THEN 1 ELSE 0 END) over() as 计时人数, sum(CASE WHEN 工资类型='计件' THEN 1 ELSE 0 END) over() as 计件人数, sum(CASE WHEN ISNULL(是否固定工,'否')='是' THEN 1 ELSE 0 END) over() 是否固定工人数, sum(CASE WHEN ISNULL(是否超过十年工,'否')='是' THEN 1 ELSE 0 END) over() as 是否超过十年工人数, MAX(应发工资) over(partition by 工资类型) as max_工资类型, MIN(应发工资) over(partition by 工资类型) as min_工资类型, MAX(应发工资) over(partition by 是否固定工) as max_工资类型, MIN(应发工资) over(partition by 是否固定工) as min_工资类型, MAX(应发工资) over(partition by 是否超过十年工) as max_工资类型, MIN(应发工资) over(partition by 是否超过十年工) as min_工资类型 from tb1 /* 工资类型 是否固定工 是否超过十年工 应发工资 年薪人数 计时人数 计件人数 是否固定工人数 是否超过十年工人数 max_工资类型 min_工资类型 max_工资类型 min_工资类型 max_工资类型 min_工资类型 ---- ----- ------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- 计件 否 否 3000 1 1 2 2 1 4000 3000 4000 3000 4000 3000 计件 是 否 4000 1 1 2 2 1 4000 3000 4000 3000 4000 3000 计时 是 是 3000 1 1 2 2 1 3000 3000 4000 3000 3000 3000 年薪 否 否 4000 1 1 2 2 1 4000 4000 4000 3000 4000 3000 (4 row(s) affected) */
我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html