首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

有关问题补充

2012-01-16 
问题补充:回答下列问题,请先看下面的网址起:http://community.csdn.net/Expert/topic/5692/5692333.xml?te

问题补充:
回答   下列问题,请先看下面的网址起:
http://community.csdn.net/Expert/topic/5692/5692333.xml?temp=.4661524

俺要的是标准答案,答不出标准的答案的也请顶一下。答的出的不想答的也请顶,请不要发提醒的。或网址什么的。谢谢合作。(进来的朋友。请顶一下哦。)

如果是下面的数据
"Persons "   表:
编号             LastName             FirstName                 Address                     City  
001               Hansen                 Ola                             Timoteivn   10           Sandnes  
002               Svendson             Tove                           Borgvn   23                 Sandnes  
003               Pettersen           Kari                           Storgt   20                 Stavanger  

"Orders "表:
编号             Company             OrderNumber  
001               Sega                   2312  
001               W3School           2312  
001               Trio                   4678  
002               W3School           6798


查询的结果是:
编号       Company                                   OrderNumber  
001         Sega,W3School,Trio         2312,4678
002         W3School                                 6798
003

不同的地方是,,当合并的数据相同时候,,只出现一次。
如:
001               Sega                   2312  
001               W3School           2312  

2312     出现了二次

但是查找的结果。
001         Sega,W3School,Trio         2312,4678

的2312   出现一次。。看那位路过的朋友,能解答。(加大了难度哦。)


[解决办法]
顶一下
[解决办法]
:)


--創建測試環境
Create Table Persons
(编号 Char(3),
LastName Varchar(20),
FirstName Varchar(20),
Address Varchar(20),
City Varchar(20))
Insert Persons Select '001 ', 'Hansen ', 'Ola ', 'Timoteivn 10 ', 'Sandnes '
Union All Select '002 ', 'Svendson ', 'Tove ', 'Borgvn 23 ', 'Sandnes '
Union All Select '003 ', 'Pettersen ', 'Kari ', 'Storgt 20 ', 'Stavanger '



Create Table Orders
(编号 Char(3),
Company Varchar(20),
OrderNumber Int)
Insert Orders Select '001 ', 'Sega ', 2312
Union All Select '001 ', 'W3School ', 2312
Union All Select '001 ', 'Trio ', 4678
Union All Select '002 ', 'W3School ', 6798
GO
--測試
--问题一
select * from Persons where LastName= 'Hansen '
union all
select * from Persons where LastName= 'Hansen '
union all
select * from Persons where LastName= 'Hansen '
union all
select * from Persons where LastName= 'Hansen '
GO

--問題二
--創建函數
Create Function F_Get_Orders(@编号 Char(3), @Flag Bit)
Returns Varchar(8000)
As
Begin
Declare @S Varchar(8000)
Select @S = ' '
If(@Flag = 0)
Select @S = @S + ', ' + Company From Orders Where 编号 = @编号 Order By OrderNumber
Else
Select @S = @S + ', ' + Cast(OrderNumber As Varchar(100)) From Orders Where 编号 = @编号 Group By OrderNumber
Select @S = Stuff(@S, 1, 1, ' ')
Return @S
End
GO
--調用
Select 编号, dbo.F_Get_Orders(编号, 0) As Company, dbo.F_Get_Orders(编号, 1) As OrderNumber From Persons
GO
--刪除測試環境
Drop Table Persons, Orders
Drop Function F_Get_Orders
GO
--結果
/*
--问题一結果
编号LastNameFirstNameAddressCity
001HansenOlaTimoteivn 10Sandnes
001HansenOlaTimoteivn 10Sandnes
001HansenOlaTimoteivn 10Sandnes
001HansenOlaTimoteivn 10Sandnes

--问题二結果
编号CompanyOrderNumber
001Sega,W3School,Trio2312,4678
002W3School6798
003NULLNULL
*/


热点排行