Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
DENIZ3E
Yak Posting Veteran
56 Posts |
Posted - 2005-04-18 : 17:32:39
|
| PLAN TEACHER ----------- --------- TRAININGID TEACHERID ID NAME-- ---- ----- ------1 1 1 A2 1 2 B 2 2 3 C2 3 TRAINING-----ID CODE---- -----2 LANGUAGE1 SPORTS I WANT TO..CODE TEACHER------ --------LANGUAGE A,B,CSPORTS A PLEASE HELP... |
|
|
rrb
SQLTeam Poet Laureate
1479 Posts |
Posted - 2005-04-18 : 20:02:27
|
bear with me, I don't have query analyzer in front of me, but I'll try to guide you through from memory...ok step one - get the data you want from the join and place it into a temporary table - the temp table needs to contain an extra field (called list) which is where we can build up the comma separated list of A,B,Ccreate #temp (code varchar(50), name varchar(50), list varchar(1000))insert into #temp (code, name)select a.code, b.namefrom [plan teacher] a inner join [training] b on a.trainingid = b.idorder by a.code, b.name step two - create a csv column for each training codedeclare @sList nvarchar(1000)Declare @sLast nvarchar(50)set @sList = ''set @sLast =''update #temp set @sList = list = case when @sLast <> code then name else @sList + ',' + name end, @sLast = codeselect code, max(list) as [teacher]from #tempgroup by codedrop table #a --I hope that when I die someone will say of me "That guy sure owed me a lot of money" |
 |
|
|
Billpl
Yak Posting Veteran
71 Posts |
Posted - 2005-04-19 : 03:58:08
|
| same thing only different:---------------------------------------------------Create table teacher ( Tid int, [name] char(1) )Insert teacher select 1, 'A'Insert teacher select 2, 'B'Insert teacher select 3, 'C'Create table training ( Nid int, code char(10) )Insert training select 1, 'Sports'Insert training select 2, 'Lanuage'Create table assign ( Nid int, Tid int )Insert assign select 1,1Insert assign select 2,1Insert assign select 2,2Insert assign select 2,3go-------------------------------------Create function dbo.teacher_grp (@Nid Int)Returns VarChar(50) asBeginDeclare @plan Table ( Nid int, name char(1), teachers Varchar(50))Insert @plan Select a.Nid, b.name,' ' from assign a, teacher b where a.Nid = @Nid and a.Tid = b.TidDeclare @list as varchar(50)Select @list = ''Update @plan set @list = teachers = @list + name + ' 'Return @listEnd-------------------------------------goSelect Code, dbo.teacher_grp( Nid ) as Teachersfrom training drop function dbo.teacher_grpdrop table assigndrop table trainingdrop table teacher-------------------------------------- |
 |
|
|
DENIZ3E
Yak Posting Veteran
56 Posts |
Posted - 2005-04-19 : 10:50:43
|
| VERY THANKS |
 |
|
|
|
|
|
|
|