您的位置:首页 > 数据库

[sql server] 问题总结9- 字符串拼接

2011-03-07 19:31 330 查看
比如先想实现一个简单的
三条记录(或者更多条)
count price type
1 10 1
2 3 1
3 4 1
4 5 1
5 2 2
6 1 2

我想输出 最后的结果表达式 type1: (1*10)+(2*3)+(3*4)+(4*5)=48
type2: (5*2)+(6*1)=16

这个要怎么做才能分组显示出想要的字符串呢
------------------------

 

CREATE TABLE tb
(
    pid int,
    id int,
    [type] int
)
insert tb
select 1, 10, 1 union all
select 2, 3, 1 union all
select 3, 4, 1 union all
select 4, 5, 1 union all
select 5, 2, 2 union all
select 6, 1, 2
go

 

 

-----------------------------

 

select   ltrim(SUM(pid*id))  from  tb group by  type

 select 'type'+ltrim([type])+stuff( (select '+('+ltrim(pid)+'*'+ltrim(id)+')' from tb where [type]=ta.[type]  for xml path('')),1,1,'')+'='+ltrim(SUM(pid*id)) as col
from tb as ta
 group  by  [type]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息