declare @T table(小区编号 int, 小区名称 varchar(100),小区关注程度 varchar(100),  TCH分配成功率_Mean decimal(18,6), SD分配成功率_Mean decimal(18,6),话音信道利用率_Mean decimal(18,6) )
insert into @T
select 26411, '闽侯洋里新见1',      '正常小区',      1.000000,                1.000000,              0.058793 union all 
select 26412, '闽侯洋里新见2',      '一般异常小区', 1.000000,        1.000000,              0.103019 union all 
select 30471, '闽侯技术学院教学楼1', '正常小区', 0.999385,        0.999934,              0.415712 union all 
select 30472, '闽侯技术学院教学楼2', '正常小区', 1.000000,        1.000000,                    0.048262 union all 
select 30473, '闽侯技术学院教学楼3',  '一般关注异常小区', 1.000000, 1.000000,            0.080986 union all 
select 38191, '世纪金辉1',          '正常小区', 1.000000,        1.000000,                    0.213867 union all 
select 2231, '九福商贸1',      '非常异常小区',  1.000000,        1.000000,                    0.048262 union all 
select 2246, '安泰中心(闽星楼)6','比较异常小区', 0.999385,        0.999934,              0.415712 ;with cte as
(
select 小区关注程度,
   avg(TCH分配成功率_Mean) TCH分配成功率_Mean均值,
   avg(SD分配成功率_Mean) SD分配成功率_Mean均值,
   avg(话音信道利用率_Mean) 话音信道利用率_Mean均值
from @T
group by  小区关注程度 
)
--select * from cte
select *,标志 = case when (select TCH分配成功率_Mean均值 from cte where 小区关注程度 = '正常小区')-
                 (select TCH分配成功率_Mean均值 from cte where 小区关注程度 = a.小区关注程度)
                  >a.TCH分配成功率_Mean - (select TCH分配成功率_Mean均值 from cte where 小区关注程度 = '正常小区')
                     then '正常' else '不正常' end       
from @T a
 /*
26411 闽侯洋里新见1 正常小区 1.000000 1.000000 0.058793 不正常
26412 闽侯洋里新见2 一般异常小区 1.000000 1.000000 0.103019 不正常
30471 闽侯技术学院教学楼1 正常小区 0.999385 0.999934 0.415712 正常
30472 闽侯技术学院教学楼2 正常小区 1.000000 1.000000 0.048262 不正常
30473 闽侯技术学院教学楼3 一般关注异常小区 1.000000 1.000000 0.080986 不正常
38191 世纪金辉1 正常小区 1.000000 1.000000 0.213867 不正常
2231 九福商贸1 非常异常小区 1.000000 1.000000 0.048262 不正常
2246 安泰中心(闽星楼)6 比较异常小区 0.999385 0.999934 0.415712 正常
*/

解决方案 »

  1.   

    我想楼主想要下面的结果  ~~~declare @T table(小区编号 int, 小区名称 varchar(100),小区关注程度 varchar(100),  TCH分配成功率_Mean decimal(18,6), SD分配成功率_Mean decimal(18,6),话音信道利用率_Mean decimal(18,6) )
    insert into @T
    select 26411, '闽侯洋里新见1',      '正常小区',      1.000000,                1.000000,              0.058793 union all 
    select 26412, '闽侯洋里新见2',      '一般异常小区', 1.000000,        1.000000,              0.103019 union all 
    select 30471, '闽侯技术学院教学楼1', '正常小区', 0.999385,        0.999934,              0.415712 union all 
    select 30472, '闽侯技术学院教学楼2', '正常小区', 1.000000,        1.000000,                    0.048262 union all 
    select 30473, '闽侯技术学院教学楼3',  '一般关注异常小区', 1.000000, 1.000000,            0.080986 union all 
    select 38191, '世纪金辉1',          '正常小区', 1.000000,        1.000000,                    0.213867 union all 
    select 2231, '九福商贸1',      '非常异常小区',  1.000000,        1.000000,                    0.048262 union all 
    select 2246, '安泰中心(闽星楼)6','比较异常小区', 0.999385,        0.999934,              0.415712 ;with cte as
    (
    select 小区关注程度,
       avg(TCH分配成功率_Mean) TCH分配成功率_Mean均值,
       avg(SD分配成功率_Mean) SD分配成功率_Mean均值,
       avg(话音信道利用率_Mean) 话音信道利用率_Mean均值
    from @T
    group by  小区关注程度 
    )
    --select * from cte
    select *,TCH分配成功率标志 = case when (select TCH分配成功率_Mean均值 from cte where 小区关注程度 = '正常小区')-
                     (select TCH分配成功率_Mean均值 from cte where 小区关注程度 = a.小区关注程度)
                      >a.TCH分配成功率_Mean - (select TCH分配成功率_Mean均值 from cte where 小区关注程度 = '正常小区')
                         then '正常' else '不正常' end, 
             SD分配成功率标志 = case when (select SD分配成功率_Mean均值 from cte where 小区关注程度 = '正常小区')-
                     (select SD分配成功率_Mean均值 from cte where 小区关注程度 = a.小区关注程度)
                      >a.SD分配成功率_Mean - (select SD分配成功率_Mean均值 from cte where 小区关注程度 = '正常小区')
                         then '正常' else '不正常' end, 
             SD分配成功率标志 = case when (select 话音信道利用率_Mean均值 from cte where 小区关注程度 = '正常小区')-
                     (select 话音信道利用率_Mean均值 from cte where 小区关注程度 = a.小区关注程度)
                      >a.话音信道利用率_Mean - (select 话音信道利用率_Mean均值 from cte where 小区关注程度 = '正常小区')
                         then '正常' else '不正常' end     
    from @T a
     /*
    26411 闽侯洋里新见1 正常小区 1.000000 1.000000 0.058793 不正常 不正常 正常
    26412 闽侯洋里新见2 一般异常小区 1.000000 1.000000 0.103019 不正常 不正常 正常
    30471 闽侯技术学院教学楼1 正常小区 0.999385 0.999934 0.415712 正常 正常 不正常
    30472 闽侯技术学院教学楼2 正常小区 1.000000 1.000000 0.048262 不正常 不正常 正常
    30473 闽侯技术学院教学楼3 一般关注异常小区 1.000000 1.000000 0.080986 不正常 不正常 正常
    38191 世纪金辉1 正常小区 1.000000 1.000000 0.213867 不正常 不正常 不正常
    2231 九福商贸1 非常异常小区 1.000000 1.000000 0.048262 不正常 不正常 正常
    2246 安泰中心(闽星楼)6 比较异常小区 0.999385 0.999934 0.415712 正常 正常 不正常
    */