Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com problemas em fazer 2 selects no SQl Server...
Construí um BD com as tabelas e chaves primárias/secundárias seguintes:
create database faculdade
-- Usando o banco
use faculdade
-- Criando tabelas
create table alunos
(ra int not null identity,nome varchar (100), cidade varchar (40))
create table professores
(codigoprofessor int not null identity, nome varchar (100), cidade varchar (40))
create table disciplinas
(codigodisciplina int not null identity, disciplina varchar (100), cargahoraria float)
create table turmas
(codigoturma int not null identity,codigodisciplina int,codigoprofessor int, ano int, diasemana varchar (40))
create table historico
(codigohistorico int not null identity,ra int,codigoprofessor int,codigodisciplina int,codigoturma int, semestre int, faltas int, nota float)
-- Inserindo chave primária
*alter table alunos add constraint chavealuno primary key (ra)*
*alter table professores add constraint chaveprof primary key (codigoprofessor)*
*alter table disciplinas add constraint chavedisc primary key (codigodisciplina)*
*alter table turmas add constraint chaveturm primary key (codigoturma)*
*alter table historico add constraint chavehist primary key (codigohistorico)*
-- Inserindo chave secundária
*alter table turmas add constraint relturprof foreign key (codigoprofessor) references professores (codigoprofessor)*
*alter table turmas add constraint relturdisc foreign key (codigodisciplina) references disciplinas (codigodisciplina)*
*alter table historico add constraint relhistalun foreign key (ra) references alunos (ra)*
*alter table historico add constraint relhistprof foreign key (codigoprofessor) references professores(codigoprofessor)*
*alter table historico add constraint relhistdisc foreign key (codigodisciplina) references disciplinas (codigodisciplina)*
*alter table historico add constraint relhistturm foreign key (codigoturma) references turmas(codigoturma)*
Preciso de um select que mostre a quantidade e nome das disciplinas de cada professor no ano de 2012, fiz o seguinte select que não está funcionando corretamente:
*select count(codigodisciplina) as 'QtdDisciplinas' from historico *
*where ano = 2012 (select distinct d.disciplina as 'Nome da Disciplina', p.nome as 'Nome dos Professor' from historico h, disciplinas d, professores p *
*where h.codigodisciplina = d.codigodisciplina)*
Ele retorna uma coisa bagunçada e confusa >.<'
E outro select que mostre a disciplina com maior média de notas:
*select codigodisciplina as 'Código da Disciplina', AVG(nota) as 'Média' from historico*
group by codigodisciplina
having avg(nota) > (select avg(nota) from historico)
Esta, ao invés de mostrar a com maior média, mostra as duas com maior média u.u'
Ajudem aê o/
Carregando comentários...