当前位置: 代码迷 >> Sql Server >> 求修改一句SELECT 语句!解决思路
  详细解决方案

求修改一句SELECT 语句!解决思路

热度:23   发布时间:2016-04-27 14:38:22.0
求修改一句SELECT 语句!
SQL code
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% */多了一例城市汇总,根据城市->汇总 后面的总计数量.求助!!!


------解决方案--------------------
SQL code
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 城市)bwhere  a.城市=b.城市group by a.城市,a.类型
------解决方案--------------------
SQL code
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.城市
  相关解决方案