日期:2014-05-18  浏览次数:20498 次

急!请教各位高手一个存储过程的问题!
在一个数据表A中,包含了汽车品牌ID,汽车品牌,系列,说明,消费者数量,等字段。现在我想求出各种品牌车子在消费者中各占的比例。是不是应该各种品牌车子所占的数量分别除以所有车子的总数。我该如何将品牌、系列、说明、各自所占的百分比显示出来。请高手帮帮忙!

------解决方案--------------------
Declare @t int
Select @t=sum(消费者数量) from tbA

Select 汽车品牌,系列,说明,
百分比=rtrim(cast(sum(消费者数量)/@t*100 as decimal(18,2)))+ '% '
from tbA group by 汽车品牌,系列,说明

------解决方案--------------------
create table a (汽车品牌ID char(3) not null primary key,汽车品牌 varchar(50),系列 varchar(30),
说明 varchar(100),消费者数量 int)
go
insert a values( '001 ', ' ', ' ', ' ',10)
insert a values( '002 ', ' ', ' ', ' ',20)
insert a values( '003 ', ' ', ' ', ' ',30)
insert a values( '004 ', ' ', ' ', ' ',40)
insert a values( '005 ', ' ', ' ', ' ',510)
insert a values( '006 ', ' ', ' ', ' ',60)
insert a values( '007 ', ' ', ' ', ' ',70)
insert a values( '008 ', ' ', ' ', ' ',80)
go
select * from a
go
declare @t int
select @t=sum(消费者数量) from a
select 汽车品牌ID,汽车品牌,系列,说明,消费者数量,cast((消费者数量*100)/@t as varchar(10))+ '% '
from a
order by 汽车品牌ID
------解决方案--------------------
-- 都为 0%是你的“消费者数量”字段为整形 ,改为:

Declare @t int
Select @t=sum(消费者数量) from 表

Select 汽车品牌ID,汽车品牌,系列,说明,
百分比=rtrim(cast(sum(消费者数量)*100.0/@t as decimal(18,2)))+ '% '
from 表 group by 汽车品牌ID,汽车品牌,系列,说明