In a scenario of areas where one area can be overseen by another one is represented in a tree structure as follows:
Problem:TheneedtoselectÁrea
(CBT-CubatãoIndustrialComplex)followtheHierarchy.(InthissituationalltheAreaslistedintheimage)
TherewillbesituationswheretheÁreas
(CBT-InfrastructureManagement)mayberequested,sothiswouldbetheresult:
- How should
Área
be to select this data?
Table Areas:
CREATE TABLE [dbo].[Areas](
[IdArea] [int] IDENTITY(1,1) NOT NULL,
[IdAreaPai] [int] NULL,
[Nome] [varchar](50) NOT NULL)
Inserts:
insert into Areas(IdAreaPai, Nome)
values(null,'CBT - Complexo Industrial de Cubatão')
insert into Areas(IdAreaPai, Nome)
values(1,'CBT - Áreas Corporativas')
insert into Areas(IdAreaPai, Nome)
values(2,'CBT - Faturamento')
insert into Areas(IdAreaPai, Nome)
values(2,'CBT - Gerência de Tecnologia da Informação')
insert into Areas(IdAreaPai, Nome)
values(2,'CBT - Gerência de Controladoria')
insert into Areas(IdAreaPai, Nome)
values(2,'CBT - Gerência de Infraestrutura')
insert into Areas(IdAreaPai, Nome)
values(6,'CBT - Restaurante')
insert into Areas(IdAreaPai, Nome)
values(6,'CBT - Serviço de infraestrutura')
insert into Areas(IdAreaPai, Nome)
values(6,'CBT - Transporte')
insert into Areas(IdAreaPai, Nome)
values(2,'CBT - Gerência de Proj. Correntes Nitrogenados')
insert into Areas(IdAreaPai, Nome)
values(10,'CBT - Arquivo Técnico')
insert into Areas(IdAreaPai, Nome)
values(10,'CBT - Proj. Correntes')
insert into Areas(IdAreaPai, Nome)
values(2,'CBT - Gerência de Recursos Humanos')
insert into Areas(IdAreaPai, Nome)
values(null,'CBT - Complexo')