I have a table containing three trees:

```
   T1      T2      T3     T4
   --      --      --     --

   A       F       B      H
  |  |    |  |    |  |    |
  B  C    B  C    A  C    I
 | |      |               |
 D E      D               B
 |                        |
 G                        J

```

I'd like to be able to get the `distinct` nodes sitting under a specific node value.

So for `B` that'd be `D, E, G`, `D`, `A, C` and `J` where the `distinct` is `A, C, D, E, G, J`

```
declare @t table (t_id int, parent_t_id int, tree varchar(2), item varchar)

insert into @t

select 1, 0, 'T1', 'A' union 
select 2, 1, 'T1', 'B' union 
select 3, 1, 'T1', 'C' union 
select 4, 2, 'T1', 'D' union 
select 5, 2, 'T1', 'E' union 
select 5, 4, 'T1', 'G' union 

select 6, 0, 'T2', 'F' union 
select 7, 6, 'T2', 'B' union 
select 8, 6, 'T2', 'C' union 
select 9, 7, 'T2', 'D' union 

select 10, 0,  'T3', 'B' union 
select 11, 10, 'T3', 'A' union 
select 12, 10, 'T3', 'C' union

select 13, 0,  'T4', 'H' union 
select 14, 13, 'T4', 'I' union 
select 15, 14, 'T4', 'B' union
select 16, 15, 'T4', 'J' 

select * from @t

```

I suspect a CTE is required?