Microsoft
Software
Hardware
Network
Question : Find bottom level of an SQL Tree
I have an SQL table used to store a heirarchial tree - each record has an id (icostcentre_id) and a parent (icostcentre_parentid). The parent points to the immediate parent costcentre OR IS null if this is a top level cost centre. As such it is easy to find top level cost centres using a query of
SELECT icostcentre_id WHERE icostcentre_parentid IS NULL
and pretty easy to traverse the tree using a simple WHERE icostcentre_parentid = value statement.
My problem is that I want to identify those records which have no children - that is the cost centres at the bottom of the tree. I did try :-
SELECT icostcentre_id FROM icostcentre
WHERE icostcentre_id NOT IN (SELECT DISTINCT(icostcentre_paren
tid) FROM icostcentre)
thinking that this would return all records whose ID was not referenced by any children but this returned no records - I assume there is a problem because I am comparing icostcentre_id with icostcentre_parentid???
Please can you suggest a way of quickly identifying those records which have no children?
Answer : Find bottom level of an SQL Tree
SELECT i1.icostcentre_id
FROM icostcentre i1
left outer join icostcentre i2 on i1.icostcentre_id= i2.icostcentre_parentid
WHERE i2.icostcentre_parentid is null
Random Solutions
Base Subform on Combo ID
Need SQL Syntax help to make my qry more efficient.
Windows 7 Screen Saver won't start
NetBIOS
I am trying to get the "Currently" selected item in a multiple selection listbox - how can this be done?
DevExpress XtraTreeList - tree structure
Setup POP3 on Exchange 2007 / SBS 2008 Server
Simple T-SQL question...
Sharepoint Backup
Why wont a hp laptop power up?