educonz / pos

0 stars 0 forks source link

aula #1

Open educonz opened 8 years ago

educonz commented 8 years ago

Livro algoritmos inteligentes - CORMEN

educonz commented 8 years ago

create table RecursosHumano.Candidato ( Id int primary key not null identity(1,1), Nome varchar(60) not null )

create table RecursosHumano.Tecnologia ( Id int primary key not null identity(1,1), Descricao varchar(60) not null )

create table RecursosHumano.Vaga ( Id int primary key not null identity(1,1), Cargo varchar(60) not null )

create table RecursosHumano.VagaTecnologia ( Id int primary key not null identity(1,1), Vaga int not null, Tecnologia int not null, Peso int )

alter table RecursosHumano.VagaTecnologia add constraint VagaTecnologia_fk1 foreign key (Vaga) references RecursosHumano.Vaga(Id); alter table RecursosHumano.VagaTecnologia add constraint VagaTecnologia_fk2 foreign key (Tecnologia) references RecursosHumano.Tecnologia(Id);

create table RecursosHumano.VagaCandidatoTecnologia ( Id int primary key not null identity(1,1), VagaTecnologia int not null, Candidato int not null, )

alter table RecursosHumano.VagaCandidatoTecnologia add constraint VagaCandidatoTecnologia_fk1 foreign key (VagaTecnologia ) references RecursosHumano.VagaTecnologia (Id); alter table RecursosHumano.VagaCandidatoTecnologia add constraint VagaCandidatoTecnologia_fk2 foreign key (Candidato) references RecursosHumano.Candidato(Id);

insert into RecursosHumano.Candidato (Nome) values ('João Paulo'); insert into RecursosHumano.Candidato (Nome) values ('Marcos Souza'); insert into RecursosHumano.Candidato (Nome) values ('Ana Paula'); insert into RecursosHumano.Candidato (Nome) values ('Flávia');

insert into RecursosHumano.Tecnologia (Descricao) values ('C#'); insert into RecursosHumano.Tecnologia (Descricao) values ('Java'); insert into RecursosHumano.Tecnologia (Descricao) values ('PL/SQL'); insert into RecursosHumano.Tecnologia (Descricao) values ('HTML5'); insert into RecursosHumano.Tecnologia (Descricao) values ('CSS3'); insert into RecursosHumano.Tecnologia (Descricao) values ('Oracle'); insert into RecursosHumano.Tecnologia (Descricao) values ('Mysql');

insert into RecursosHumano.Vaga (Cargo) values ('Programador JR Java'); insert into RecursosHumano.Vaga (Cargo) values ('Programador PL C#'); insert into RecursosHumano.Vaga (Cargo) values ('DBA'); insert into RecursosHumano.Vaga (Cargo) values ('Programador SR Web Front/End');

insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (1, 2, 7); insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (1, 6, 5);

insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (2, 1, 10); insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (2, 3, 7);

insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (3, 3, 8); insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (3, 6, 10); insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (3, 7, 9);

insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (3, 3, 8); insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (3, 6, 10); insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (3, 7, 9);

insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (4, 4, 10); insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (4, 5, 10); insert into RecursosHumano.VagaTecnologia (Vaga, Tecnologia, Peso) values (4, 7, 10);

insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (1,1); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (1,2); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (1,3); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (1,4);

insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (2,2); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (2,2); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (2,3); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (2,1);

insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (3,4); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (3,3);

insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (4,3); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (4,2);

insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (5,2); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (5,1);

insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (6,4); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (6,1);

insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (7,1); insert into RecursosHumano.VagaCandidatoTecnologia (VagaTecnologia, Candidato) values (7,1);

select v.Cargo, c.Nome, sum(k.Peso) as [PontuacaoTotal] from RecursosHumano.Candidato c join RecursosHumano.VagaCandidatoTecnologia y on y.Candidato = c.Id join RecursosHumano.VagaTecnologia k on k.Id = y.VagaTecnologia join RecursosHumano.Tecnologia t on t.Id = k.Tecnologia join RecursosHumano.Vaga v on v.Id = k.Vaga group by v.Cargo, c.Nome order by v.Cargo, [PontuacaoTotal] desc

with tbvHierarquia(id, nome, hierarquia) as ( select id, nome, CAST(nome as varchar(255)) as 'hierarquia' from Funcionario where GerenteId is null

union all

select f.id,
       f.nome,
       CAST((t.hierarquia + ' \ ' + f.nome) as varchar(255)) 'hierarquia' 
  from Funcionario f
  join tbvHierarquia t on f.GerenteId = t.id 

) select hierarquia from tbvHierarquia