34,587
社区成员
发帖
与我相关
我的任务
分享
select 城市,类型,
正确=sum(case when 结果='正确' then 票数 else 0 end),
错误=sum(case when 结果='错误' then 票数 else 0 end),
总计=sum(票数),达标率=ltrim(cast(sum(case when 结果='正确' then 票数 else 0 end)*1.0/sum(票数)*100 as numeric(18,2)))+'%'
from ZS_kpi group by 城市,类型
得如下结果
/*
城市 类型 正确 错误 总计 达标率
武汉 错误 128 0 128 100.00%
深圳 错误 70 45 115 60.87%
广州 错误 632 32 664 95.18%
深圳 正确 1535 12 1547 99.22%
武汉 正确 1377 4 1381 99.71%
上海 正确 3146 38 3184 98.81%
长沙 错误 436 11 447 97.54%
广州 正确 3560 59 3619 98.37%
长沙 正确 1498 293 1791 83.64%
上海 错误 518 1 519 99.81% */
现在想得如查结果
/*
城市 城市汇总 类型 正确 错误 总计 达标率
武汉 1509 错误 128 0 128 100.00%
深圳 1662 错误 70 45 115 60.87%
广州 4283 错误 632 32 664 95.18%
深圳 1662 正确 1535 12 1547 99.22%
武汉 1509 正确 1377 4 1381 99.71%
上海 3703 正确 3146 38 3184 98.81%
长沙 2238 错误 436 11 447 97.54%
广州 4283 正确 3560 59 3619 98.37%
长沙 2238 正确 1498 293 1791 83.64%
上海 3703 错误 518 1 519 99.81% */
多了一例城市汇总,根据城市->汇总 后面的总计数量.求助!!!
select a.城市,b.总计数量 as 城市汇总,a.类型,a.正确,a.错误,a.总计,a.达标率
from(
select 城市,类型,
正确=sum(case when 结果='正确' then 票数 else 0 end),
错误=sum(case when 结果='错误' then 票数 else 0 end),
总计=sum(票数),达标率=ltrim(cast(sum(case when 结果='正确' then 票数 else 0 end)*1.0/sum(票数)*100 as numeric(18,2)))+'%'
from ZS_kpi group by 城市,类型
)a inner join (select 城市,sum(票数) as 总计数量 from zs_kpi group by 城市)b on a.城市=b.城市
select a.城市,b.总计数量 as 城市汇总,a.类型,a.正确,a.错误,a.总计,a.达标率
from(
select 城市,类型,
正确=sum(case when 结果='正确' then 票数 else 0 end),
错误=sum(case when 结果='错误' then 票数 else 0 end),
总计=sum(票数),达标率=ltrim(cast(sum(case when 结果='正确' then 票数 else 0 end)*1.0/sum(票数)*100 as numeric(18,2)))+'%'
from ZS_kpi group by 城市,类型
)a inner join [城市-汇总] b on a.城市=b.城市
select
a.城市,b.城市汇总,a.类型,
正确=sum(case when a.结果='正确' then 票数 else 0 end),
错误=sum(case when a.结果='错误' then 票数 else 0 end),
总计=sum(a.票数),
达标率=ltrim(cast(sum(case when a.结果='正确' then a.票数 else 0 end)*1.0/sum(a.票数)*100 as numeric(18,2)))+'%'
from
ZS_kpi a,
(select 城市,sum(票数) as 城市汇总 from ZS_kpi group by 城市)b
where
a.城市=b.城市
group by a.城市,a.类型