2010-05-26 11 views
0

Je veux y adhérez ces tableau 3 en vue d'un rapport:Sql Server 2005 Pivot

classe Tableau:

ID Name 
1 N1 
2 N2 
3 N3 

Drapeaux Tableau:

ID ClassID Flags 
1 1  F1 
2 1  F2 
3 2  F6 
4 2  F3 
5 3  F2 

Tableau des sessions:

ID ClassID Sessions 
1  1   S1 
2  1   S4 
3  2   S3 
4  3   S5 
5  3   S4 

Alors ma vue souhaitée devrait être quelque chose comme ceci:

ID Name Flags Sessions 
1 N1  F1,F2  S1,S4 
2 N2  F6,F3  S3 
3 N3  F2  S5,S4 

Répondre

0
select Class.ID,Name,Flags,Sessions 
from Class 
inner join flags on class.id = flags.classid 
inner join sessions on class.id = sessions.classid 
4
Select C.Id, C.Name 
    , Stuff(
      (
      Select ', ' + F1.Flags 
      From Flags As F1 
      Where F1.ClassId = C.Id 
      Order By F1.Flags 
      For Xml Path('') 
      ), 1, 2, '') As Flags 
    , Stuff(
      (
      Select ', ' + S1.Sessions 
      From Sessions As S1 
      Where S1.ClassId = C.Id 
      Order By S1.Flags 
      For Xml Path('') 
      ), 1, 2, '') As Sessions 
From Class As C