關於分組後各個字段連接的問題
CREATE   TABLE   [TEST2]   ( 
 	[p_no]   [varchar]   (12)      NOT   NULL   , 
 	[mno]   [varchar]   (12)      NULL   , 
 	[p_fee]   [numeric](9,   2)   NULL   , 
 )   ON   [PRIMARY] 
 GO   
 INSERT   INTO   [PeoEduLT].[dbo].[TEST2]([p_no],   [mno],   [p_fee]) 
 VALUES( '2007060009 ', '000012 ', '500 ') 
 INSERT   INTO   [PeoEduLT].[dbo].[TEST2]([p_no],   [mno],   [p_fee]) 
 VALUES( '2007060009 ', '000010 ', '50 ')   
 結果: 
 ------------------------- 
 p_no                              mno                                                   p_fee 
 2007060009            000012,000010                     550 
 ------------------------- 
 不要用遊標,盡量不要臨時表,請幫忙!
------解决方案--------------------参考:   
 http://community.csdn.net/Expert/topic/5584/5584268.xml?temp=.9655573
------解决方案----------------------生成测试数据 
 CREATE TABLE [TEST2] ( 
 	[p_no] [varchar] (12)  NOT NULL , 
 	[mno] [varchar] (12)  NULL , 
 	[p_fee] [numeric](9, 2) NULL , 
 ) 
 GO   
 INSERT INTO [TEST2] VALUES( '2007060009 ', '000012 ', '500 ') 
 INSERT INTO [TEST2] VALUES( '2007060009 ', '000010 ', '50 ') 
 go   
 --创建用户定义函数 
 create function f_str(@p_no int) 
 returns varchar(8000) 
 as 
 begin 
     declare @ret varchar(8000) 
     set @ret =  ' ' 
     select @ret = @ret+ ', '+mno from TEST2 where p_no = @p_no 
     set @ret = stuff(@ret,1,1, ' ') 
     return @ret  
 end 
 go   
 --执行 
 select p_no,mno=dbo.f_str(p_no),sum(p_fee) as p_fee from TEST2 group by p_no 
 go     
 --输出结果 
 /* 
 p_no         mno                 p_fee 
 ------------ ------------------- -------- 
 2007060009   000012,000010         550.00 
 */   
 --删除测试数据 
 drop function f_str 
 drop table TEST2 
 go 
------解决方案--------------------CREATE TABLE [TEST2] ( 
 	[p_no] [varchar] (12)  NOT NULL , 
 	[mno] [varchar] (12)  NULL , 
 	[p_fee] [numeric](9, 2) NULL , 
 ) ON [PRIMARY] 
 GO   
 INSERT INTO [dbo].[TEST2]([p_no], [mno], [p_fee]) 
 VALUES( '2007060009 ', '000012 ', '500 ') 
 INSERT INTO [dbo].[TEST2]([p_no], [mno], [p_fee]) 
 VALUES( '2007060009 ', '000010 ', '50 ') 
 GO 
 Create Function F_Getmno(@p_no varchar (12)) 
 Returns Varchar(8000) 
 As 
 Begin 
 	Declare @S Varchar(8000) 
 	Select @S =  ' ' 
 	Select @S = @S +  ', ' + mno From TEST2 Where p_no = @p_no 
 	Return (Right(@S, Len(@S) - 1)) 
 End 
 GO 
 Select  
 	p_no, 
 	dbo.F_Getmno(p_no) As mno, 
 	SUM(p_fee) As p_fee 
 From 
 	TEST2 
 Group By 
 	p_no 
 GO 
 Drop Table TEST2 
 Drop Function F_Getmno 
 --Result 
 /* 
 p_no		mno		p_fee 
 2007060009	000012,000010	550.00 
 */ 
------解决方案--------------------方法差不多,不過函數內部有少許區別。   
 寫出來了,就貼出來算了。