要求;按编码分组查询 商品销售ABC分析报表 按数量统计
A类 销量占 5%
B类 销量占 20%
C类 销量占 75%
商品编码 销量
001 5
002 8
003 3
002 8
003 2
005 8
002 1
003 5
002 12
001 1
005 5
结果应该是
商品编码 销量 ABC
........................
.
.
.
...
A:
------------------------------------
-- Author: johnsonHe
-- Date:2008-10-27 23:45:42
------------------------------------
-- Test Data: ta
IF OBJECT_ID('ta') IS NOT NULL
DROP TABLE ta
Go
CREATE TABLE ta(商品编码 NVARCHAR(3),销量 INT)
Go
INSERT INTO ta
SELECT '001',5 UNION ALL
SELECT '002',8 UNION ALL
SELECT '003',3 UNION ALL
SELECT '002',8 UNION ALL
SELECT '003',2 UNION ALL
SELECT '005',8 UNION ALL
SELECT '002',1 UNION ALL
SELECT '003',5 UNION ALL
SELECT '002',12 UNION ALL
SELECT '001',1 UNION ALL
SELECT '005',5
GO
--Start
select 商品编码,sum(销量) as 销量
,case
when sum(销量)*1.0/b.s <0.05 then 'A'
when sum(销量)*1.0/b.s between 0.05 and 0.2 then 'B'
ELSE 'C'
END as ABC
from ta,
(SELECT sum(销量) as s
FROM ta) b
group by 商品编码,b.s
--Result:
/*
商品编码 销量 ABC
---- ----------- ----
001 6 B
002 29 C
003 10 B
005 13 C
*/
--End