一个典型的SQL语句

来源:互联网 发布:日本蛋包饭知乎 编辑:程序博客网 时间:2024/04/30 07:58

要求;按编码分组查询 商品销售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

原创粉丝点击