declare @s1 float select @s1=sum(salesum) from sales select goodsname,sum(salesum) from sales group by goodsname with sum(salesum)/@sq>=0.2
谢谢楼上的,可是有错误提示: 'sum' 不是可以识别的 GROUP BY 选项。
select goodsname from [table] group by goodsname having (sum(salesnum) /(select sum(salesnum) from [table]))=0.2
--这样create table T_sales(goodsname nvarchar(10), salesnum int) insert T_sales select 'AA', 200 insert T_sales select 'AA', 100 insert T_sales select 'BB', 200select goodsname, 销售量=rtrim(sum(salesnum)*100/(select sum(salesnum) from T_sales))+'%' from T_sales group by goodsname--result goodsname 销售量 ---------- ------------- AA 60% BB 40%(2 row(s) affected)
格式如下: 字段分别为: 日期, 型号, 销售量 12.1 A 2 12.1 B 1 12.1 C 1 12.1 E 3 12.1 F 1 12.1 H 2 12.1 I 1 12.2 A 1 12.2 C 1 12.2 D 1 12.2 E 4 12.2 H 2 上面一共销售了20台(不管型号)..我要知道,哪些商品卖得最好.因此,我可以求合,排序. 得到的结果集为:(不管日期了). 型号, 销售号 E 7 H 4 A 3 C 2 B 1 D 1 F 1 I 1 现在,我想知道,哪些商品我售量占到了总销量的:20%, 很明显,是E 7,如果我要知道销量占到50%的是哪些,很明显, 是:E 7,, H 4,, 如果要达到80%, 那就是E,H ,A,C 了..
create table T_sales(goodsname nvarchar(10), salesnum int) insert T_sales select 'A', 2 union all select 'B', 1 union all select 'C', 1 union all select 'E', 3 union all select 'F', 1 union all select 'H', 2 union all select 'I', 1 union all select 'A', 1 union all select 'C', 1 union all select 'D', 1 union all select 'E', 4 union all select 'H', 2 select goodsname, 销售量=sum(salesnum), [销售量%]=rtrim(sum(salesnum)*100/(select sum(salesnum) from T_sales))+'%' from T_sales group by goodsname order by sum(salesnum) desc --result goodsname 销售量 销售量% ---------- ----------- ------------- E 7 35% H 4 20% A 3 15% C 2 10% D 1 5% B 1 5% I 1 5% F 1 5%(8 row(s) affected)
楼上的,谢谢你了,但,你理解错了我的意思, 我要知道,销量占到50%的都是哪些商品, 我只需要查出:E 和 H 就可以了.并不是分析,每件商品占的百分比. 不过,与我要求的比较接近了,我的要求与这个页面的差不多: http://blog.csdn.net/verybigmouthz/archive/2004/06/16/15265.aspx
select @s1=sum(salesum) from sales
select goodsname,sum(salesum) from sales group by goodsname with sum(salesum)/@sq>=0.2
'sum' 不是可以识别的 GROUP BY 选项。
/(select sum(salesnum) from [table]))=0.2
insert T_sales select 'AA', 200
insert T_sales select 'AA', 100
insert T_sales select 'BB', 200select goodsname,
销售量=rtrim(sum(salesnum)*100/(select sum(salesnum) from T_sales))+'%' from T_sales group by goodsname--result
goodsname 销售量
---------- -------------
AA 60%
BB 40%(2 row(s) affected)
字段分别为:
日期, 型号, 销售量
12.1 A 2
12.1 B 1
12.1 C 1
12.1 E 3
12.1 F 1
12.1 H 2
12.1 I 1
12.2 A 1
12.2 C 1
12.2 D 1
12.2 E 4
12.2 H 2 上面一共销售了20台(不管型号)..我要知道,哪些商品卖得最好.因此,我可以求合,排序.
得到的结果集为:(不管日期了).
型号, 销售号
E 7
H 4
A 3
C 2
B 1
D 1
F 1
I 1
现在,我想知道,哪些商品我售量占到了总销量的:20%, 很明显,是E 7,如果我要知道销量占到50%的是哪些,很明显, 是:E 7,, H 4,, 如果要达到80%, 那就是E,H ,A,C 了..
insert T_sales select 'A', 2
union all select 'B', 1
union all select 'C', 1
union all select 'E', 3
union all select 'F', 1
union all select 'H', 2
union all select 'I', 1
union all select 'A', 1
union all select 'C', 1
union all select 'D', 1
union all select 'E', 4
union all select 'H', 2 select goodsname,
销售量=sum(salesnum),
[销售量%]=rtrim(sum(salesnum)*100/(select sum(salesnum) from T_sales))+'%' from T_sales group by goodsname
order by sum(salesnum) desc
--result
goodsname 销售量 销售量%
---------- ----------- -------------
E 7 35%
H 4 20%
A 3 15%
C 2 10%
D 1 5%
B 1 5%
I 1 5%
F 1 5%(8 row(s) affected)
我要知道,销量占到50%的都是哪些商品,
我只需要查出:E 和 H 就可以了.并不是分析,每件商品占的百分比.
不过,与我要求的比较接近了,我的要求与这个页面的差不多:
http://blog.csdn.net/verybigmouthz/archive/2004/06/16/15265.aspx