0 0

sql 2005 排序取值 聚合 行列转换5

店名        物品        价钱
肯德基      土豆条      20
肯德基      鸡翅膀      15
肯德基      鸭脖子      30
麦当劳      匹萨        46
麦当劳      果汁        15
麦当劳      可乐        2
麦当劳      哇哈哈      4
麦当劳      雪碧        35
中国菜      红烧鱼      65
中国菜      小白菜      10
中国菜      炒鸡蛋      13
中国菜      萝卜条      6


需要如下:
店名     第一贵的       第二贵的    一共     占有的%
肯德基   鸭脖子         鸡翅膀      45          69
麦当劳   匹萨           雪碧        81           96
中国菜   红烧鱼         炒鸡蛋      78          97
2010年6月21日 17:48

2个答案 按时间排序 按投票排序

0 0

看这结果如何。
select a.dianming,wupin,jiaqian,s,jiaqian/s*100
from
(
select *
from tbl_test as a
where wupin in(select top 2 wupin from tbl_test where dianming=a.dianming order by jiaqian desc)
) a
inner join
(
select dianming,sum(jiaqian) as s
from tbl_test as a
where wupin in(select top 2 wupin from tbl_test where dianming=a.dianming order by jiaqian desc)
group by dianming
) b on a.dianming=b.dianming


肯德基 土豆条 20.00000 50.00000 40.0000000000000000
肯德基 鸭脖子 30.00000 50.00000 60.0000000000000000
麦当劳 匹萨 46.00000 81.00000 56.7901234567901235
麦当劳 雪碧 35.00000 81.00000 43.2098765432098765
中国菜 红烧鱼 65.00000 78.00000 83.3333333333333333
中国菜 炒鸡蛋 13.00000 78.00000 16.6666666666666667

2010年6月29日 17:49
0 0

id      dianming wupin  jiaqian
1 肯德基 土豆条 20.00000
2 肯德基 鸡翅膀 15.00000
3 肯德基 鸭脖子 30.00000
4 麦当劳 匹萨 46.00000
5 麦当劳 果汁 15.00000
6 麦当劳 可乐  2.00000
7 麦当劳 哇哈哈 4.00000
8 麦当劳 雪碧 35.00000
9 中国菜 红烧鱼 65.00000
10 中国菜 小白菜 10.00000
11 中国菜 炒鸡蛋 13.00000
12 中国菜 萝卜条 6.00000

select *
from tbl_test as a
where wupin in(select top 2 wupin from tbl_test where dianming=a.dianming order by jiaqian desc)


我只能做到这份上,等着你有更好的方案。

2010年6月29日 17:44

相关推荐

Global site tag (gtag.js) - Google Analytics