首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL 语句新增一个字段,纠结好久就是不成功

2013-04-21 
SQL 语句新增一个字段,纠结好久就是不成功,求高手指教数据库里面有一张表格tb,现新增一个字段ABC分类,要求

SQL 语句新增一个字段,纠结好久就是不成功,求高手指教
数据库里面有一张表格tb,现新增一个字段ABC分类,要求是 按百分比分 百分比前 0.0-0.5 为A,0.5-0.9为B,0.9-1.0为C
  (百分比是  备件消耗金额占总消耗金额的比,tb表已经按 百分比从大到小排序)

备件    百分比   新增字段(ABC分类)
A       0.270     A
B       0.250     A
C       0.200     B
D       0.180     B
E       0.100     C
[解决办法]

if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (备件 nvarchar(2),百分比 numeric(4,3))
insert into [TB]
select 'A',0.270 union all
select 'B',0.250 union all
select 'C',0.200 union all
select 'D',0.180 union all
select 'E',0.100

select * from [TB]

SELECT  B.备件 ,
        B.百分比 ,
        CASE WHEN SUM(A.百分比) BETWEEN 0 AND 0.5 THEN 'A'
             ELSE CASE WHEN SUM(A.百分比) BETWEEN 0.5 AND 0.9 THEN 'B'
                       ELSE 'C'
                  END
        END AS ABC分类
FROM    dbo.TB A
        INNER JOIN TB B ON A.备件 <= B.备件
GROUP BY B.备件 ,
        B.百分比
ORDER BY B.备件


/*
备件百分比ABC分类
A0.270A
B0.250B
C0.200B
D0.180B
E0.100C*/

[解决办法]
SELECT
备件,
百分比,
(SELECT 
CASE WHEN 百分比 < 0.5 THEN 'A' 
ELSE 
CASE WHEN 百分比>=0.5 AND 百分比 < 0.9 THEN 'B'
ELSE 'C'
END
END
)
FROM tb

热点排行