sql语句,合并多条记录中的相同字段。

[复制链接]
查看11 | 回复4 | 2010-8-26 13:18:42 | 显示全部楼层 |阅读模式
我在用sql sever2008,现在有个问题。我的表是这样:
商店id
时间id
用户id
购买产品id
1
1
2
235
1
1
2
256
1
1
5
356
1
1
5
766
1
2
7
578
1
2
7
798
2
2
5
433
2
2
5
298
2
2
5
478
现在想变成:
商店id
时间id
用户id
购买产品id
1
1
2
235,256
1
1
5
356,766
1
2
7
578,798
2
2
5
433,298,478
也就是说首先按照商店id分组,再按时间分组,再按照用户id分组,最后把相同用户一次购买的产品合并到一条记录里,用逗号隔开。
谢谢大家!

回复

使用道具 举报

千问 | 2010-8-26 13:18:42 | 显示全部楼层
假如你的表结构如下:create table tb_test(
商店id int, 时间id int, 用户id int, 购买产品id int)可以创建如下聚合函数:create function fn_test(@商店id int,@时间id int,@用户id int)returns varchar(8000)as begin declare @ret varchar(8000) set @ret='' select @ret=@ret+convert(varchar(100),购买产品id int)+',' from tb_test where 商店i
回复

使用道具 举报

千问 | 2010-8-26 13:18:42 | 显示全部楼层
7> CREATE TABLE TestWZY (8> [商店id]
INT,9> [时间id]
INT,10> [用户id]
INT,11> [购买产品id] INT12> );13> go1> INSERT INTO TestWZY VALUES (1, 1, 2, 235);2>
回复

使用道具 举报

千问 | 2010-8-26 13:18:42 | 显示全部楼层
-商店id
时间id
用户id
购买产品id -1
1
2
235 =1
1
2
25
回复

使用道具 举报

千问 | 2010-8-26 13:18:42 | 显示全部楼层
--首先建立临时表select a.商店id,a.时间id,a.用户id,sum(a.购买产品id+b.购买产品id) as 购买产品id into tab_3 from tab_1 a,tab_2 bwhere a.商店id=b.商店id,a.时间id=b.时间id,a.用户id=b.用户idgroup by a.商店id,a.时间id,a
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行