读书人

SQL2000,BOM结果列转行求一话语或函

发布时间: 2012-10-10 13:58:11 作者: rapoo

SQL2000,BOM结果列转行,求一语句或函数
关于检核BOM表重复的问题。求MS SQL2000 的语句或是函数,问题如下:
---------------------------------
BOM结果列转行,求一语句或函数

A01,A02,A03 三个字段,分别为主件,序号,元件
记录
  f01,f02, f03
  a01 0001 a1
  a01 0002 a2
  a02 0001 a5
  a02 0002 a6
  a02 0003 a7
  a02 0004 a8
需要的结果显示两个字段,具体如下:
f01 f03
a01 a1,a2
a02 a5,a6,a7,a8



[解决办法]

SQL code
create table ann(f01 varchar(6), f02 varchar(6), f03 varchar(6)) insert into annselect 'a01', '0001', 'a1' union allselect 'a01', '0002', 'a2' union allselect 'a02', '0001', 'a5' union allselect 'a02', '0002', 'a6' union allselect 'a02', '0003', 'a7' union allselect 'a02', '0004', 'a8'create function dbo.fn_ann(@f01 varchar(6))returns varchar(200)asbegin  declare @r varchar(200)    select @r=isnull(@r,'')+f03+','  from ann   where f01=@f01    select @r=left(@r,len(@r)-1)    return @rendselect f01,       dbo.fn_ann(f01) 'f03' from anngroup by f01/*f01    f03------ ----------------a01    a1,a2a02    a5,a6,a7,a8(2 row(s) affected)*/ 

读书人网 >SQL Server

热点推荐