sql的查询语句问题!急
Table1:
ID1 Name1 Age1
11T11111
12T12112
13T13113
14 net1
11vc2
15java3
12c4
Table2:
ID2 Name2 Age2
11T21221
12T22222
13T23223
14T24224
15T25225
16T26226
17T27227
问题1:请问怎么把Table1中的ID1相同项的Name1合并?
结果应为:
ID1 Name1 Age1
11 T11,vc 111
12 T12,c 112
13 T13 113
14 net1
15 java3
问题2:怎么实现Table1和Table2的关联?
结果应为:
ID2 Name2 Age2 ID1 Name1 Age1
11 T21 221 11 T11,vc 111
12 T2 222 12 T12,c 112
13 T23 223 13 T13 113
14 T24 224 14 net 1
15 T25 225 15 java 3
16 T26 226 null null null
17 T27 227 null null null
------解决方案--------------------
晕倒,居然回复了这么多次才完,看来我该趴会睡觉了先。。。。。
zzzZZZ
[解决办法]
create table T1(ID1 int, Name1 varchar(10), Age1 int)
insert T1 select 11, 'T11 ',111
union all select 12, 'T12 ',112
union all select 13, 'T13 ',113
union all select 14, 'net1 ', null
union all select 11, 'vc2 ', null
union all select 15, 'java3 ', null
union all select 12, 'c4 ', null
create table T2(ID2 int, Name2 varchar(10), Age2 int)
insert T2 select 11, 'T21 ',221
union all select 12, 'T22 ',222
union all select 13, 'T23 ',223
union all select 14, 'T24 ',224
union all select 15, 'T25 ',225
union all select 16, 'T26 ',226
union all select 17, 'T27 ',227
--1
create function dbo.fun(@ID1 int)
returns varchar(200)
as
begin
declare @re varchar(200)
set @re= ' '
select @re=@re+ ', '+Name1 from T1 where ID1=@ID1
return stuff(@re, 1, 1, ' ')
end
select ID1, Name1=dbo.fun(ID1), max(Age1) as Age1
from T1
group by ID1
--result
ID1 Name1 Age1
----------- -------------------------------------------------------------------------------------------- -----------
11 T11,vc2 111
12 T12,c4 112
13 T13 113
14 net1 NULL
15 java3 NULL
(5 row(s) affected)
