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

:请教这个SQL语句该如何写

2012-02-22 
在线等:请问这个SQL语句该怎么写?原来有一个表,结构如下-------------------------城市|品牌|销售量------

在线等:请问这个SQL语句该怎么写?
原来有一个表,结构如下
-------------------------
城市     |     品牌   |     销售量  
-------------------------
北京     |   TCL       |         1
-------------------------
北京     |   长虹     |         2
-------------------------
北京     |   LG         |         8
-------------------------
上海     |   TCL       |         1
-------------------------
广州     |   TCL       |         1
-------------------------
广州     |   TCL       |         10

城市是不同的,品牌也是不同的,但同一个城市的品牌是不重复的(也就是说北京不会有两条TCL品牌的纪录)。我要向计算每个城市的品牌率,计算公式就是
某城市某个品牌的销售量/该城市所有品牌的销售量,比方说第一行数据就是
1/(1+2+7)=10%.我希望得到的结果如下表所示
-------------------------------------
城市     |     品牌   |     销售量   |   城市品牌率
-------------------------------------
北京     |   TCL       |         1         |           10%
------------------------------------
北京     |   长虹     |         2         |           20%
-------------------------------------
北京     |   LG         |         7         |           70%
--------------------------------------
上海     |   TCL       |         1         |           100%
-------------------------------------
广州     |   TCL       |         1         |           10%
-------------------------------------
广州     |   TCL       |         9       |             90%

麻烦那位高手帮我看看这个存储过程该怎么写?给个思路也行,多谢拉!

[解决办法]
select *, 城市品牌率 = rtrim(a.销售量 * 100.0 / b.cnt) + '% '
from 表 a inner join
(select 城市, sum(销售量) as cnt from 表 group by 城市) b
on a.城市 = b.城市
[解决办法]
select *,城市品牌率=cast(销售量/(select sum(销售量) from tablename where t.城市=城市) as varchar)+ '% '
from tablename
[解决办法]
你的數據就有問題。。

try :
select 城市,品牌 ,销售量 ,城市品牌率= (select sum(销售量) from table group by 城市 where 城市 = a.城市) from table a
[解决办法]
Select
A.城市,
A.品牌,
A.销售量,
Cast(A.销售量 * 100 / B.销售量 As Varchar) + '% '
From
表 A
Inner Join
(Select 城市, SUM(销售量) As 销售量 From 表 Group By 城市) B
On A.城市 = B.城市
[解决办法]
select 城市,品牌 ,销售量 ,城市品牌率= 销售量/(select sum(销售量) from table group by 城市 where 城市 = a.城市) from table a

[解决办法]
create table tab(城市 varchar(10),品牌 varchar(10),销售量 int)
insert tab
select '北京 ', 'TCL ',1


union select '北京 ', '长虹 ',2
union select '北京 ', 'LG ',7
union select '上海 ', 'TCL ',1
union select '广州 ', 'TCL ',1
union select '广州 ', 'TCL ',9


select *,城市品牌率=cast(销售量*100/(select sum(销售量) from tab where t.城市=城市) as varchar)+ '% '
from tab t


drop table tab

热点排行
Bad Request.