SELECT składnia

0

Szanowni Forumowicze,

mam w mssql tabelę:

symbol symbol_matka
s.60       NULL
bok.l      s.60      
bok.p      s.60      
plyta.18   bok.l     
plyta.18   bok.p     
pvc.2      bok.l     
pvc.2      bok.p     
pvc.1      bok.l     
pvc.1      bok.p     
szuf.d s.60      
szuf.prow szuf.d
szuf.dno szuf.d
plyta.18   szuf.dno
pvc.2      szuf.dno
pvc.1      szuf.dno

i chciałbym uzyskać taki wynik:

s.60       bok.l      plyta.18  
s.60       bok.l      pvc.1     
s.60       bok.l      pvc.2     
s.60       bok.p      plyta.18  
s.60       bok.p      pvc.1     
s.60       bok.p      pvc.2     
s.60       szuf.d szuf.prow
s.60       szuf.d szuf.dno plyta.18  
s.60       szuf.d szuf.dno pvc.2     
s.60       szuf.d szuf.dno pvc.1     

Czy mógłbym prosić o sugestie jak powinien być skonstruowany SELECT...

pzdr

0

zakładam tabele

 
CREATE TABLE [dbo].[symbole](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[Symbol] [varchar](50) NULL,
	[SymbolMatka] [varchar](50) NULL
) ON [PRIMARY]

Wprowadzam dane
id Symbol SymbolMatka
1 s.60 NULL
2 bok.I s.60
3 bok.p s.60
4 plyta.18 bok.I
5 plyta.18 bok.p
6 pvc.2 bok.I
7 pvc.2 bok.p
8 pvc.1 bok.I
9 pvc.1 bok.p
10 szuf.prow szuf.dno
11 szuf.dno szuf.d
12 plyta.18 szuf.dno
13 pvc.2 szuf.dno
14 pvc.1 szuf.dno
15 szuf.d s.60

i teraz ten selekt jaki mi wyszedł. Coś czuje że nie oto chodziło ale wynik pasuje.

select m1.SymbolMatka as [ROOT]
,m1.Symbol AS [Poziom1]
,m2.Symbol as [Poziom2]
,m3.Symbol as [Poziom3] 
from 
symbole AS M 
left join symbole as m1 on m.Symbol=m1.SymbolMatka
left join symbole as m2 on m1.symbol=m2.SymbolMatka
left join symbole as m3 on m2.Symbol=m3.SymbolMatka
where m.SymbolMatka is null
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1