Ir para conteúdo
Fórum Script Brasil

kikokairos

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre kikokairos

  • Data de Nascimento 12/02/1980

Perfil

  • Gender
    Male
  • Location
    Sousa, PB

kikokairos's Achievements

0

Reputação

  1. Salve galera, Estou com dúvidas quanto a Herança... Primeiro: Usei a regra que faz uma relação para cada entidade. Ex: Material(Titulo, Ano, Edição) - Generalização Livro(ISBN, Autor, Editora) - Especialização Periodico(ISSN, Nro, Área) - Especialização Tudo ok, até então. Porém quando fui criar a tabela Item_Emprestados apareceu uma dúvida, veja: Item_Emprestados(ID_Item, Qtd, Data, ID_Aluno, Cod_Material) Como vocês podem ver, Cod_Material é uma chave estrangeira para as tabelas especializadas Livro e Periodico, porém isso não parece ser permitido. Minha pergunta então é: Como fazer para Cod_Material ser tanto do tipo ISBN(Livro) quanto ISSN(Periodico) ? Abaixo vou colocar meu códico: CREATE TABLE Material( Titulo VARCHAR(120) NOT NULL, Editora VARCHAR(50) NOT NULL, Ano INT NOT NULL ); CREATE TABLE Livro ( ISBN VARCHAR(13), Area VARCHAR(50) NOT NULL, Autor VARCHAR(50) NOT NULL, PRIMARY KEY (ISBN) ) inherits (Material); CREATE TABLE Periodico ( ISSN VARCHAR(10), Edicao VARCHAR(10) NOT NULL, Numero INT, PRIMARY KEY (ISSN) ) inherits (Material); CREATE TABLE Item_Empresta( COD_Item VARCHAR(10) , Quantidade INT NOT NULL, Grupo VARCHAR(50) , Data_Inicio DATE NOT NULL, Data_Devolucao DATE NOT NULL, CPF_Funcionario VARCHAR(14), Mat_Aluno VARCHAR(10), Mat_Bolsa VARCHAR(10), ID_Material VARCHAR(13) NOT NULL, PRIMARY KEY(COD_Item), CONSTRAINT Referencia_Empresta_Material FOREIGN KEY (ID_Material) REFERENCES Livro(ISBN) ON DELETE RESTRICT ON UPDATE CASCADE, FOREIGN KEY (ID_Material) REFERENCES Periodico(ISSN) ON DELETE RESTRICT ON UPDATE CASCADE ) Observe que do jeito que está meu código, se eu tentar inserir um material Periodico dá erro pois a primeira restrição é livro então ele informa que não há livro com tal Identificador.
  2. Ok, ótimo! Era assim mesmo que eu queria. Eu também consegui fazer a mesma consulta assim: SELECT M.crm, M.nome, COUNT(T.telefone) AS Qtd_Telefones FROM Medico M, Telefone_Medico T WHERE M.crm=T.crm GROUP BY M.crm, M.nome Dá o mesmo resultado. Mas como seu exemplo foi diferente vou estudar o "inner join" para entender melhor. Acredito que o meu erro era agrupar apenas por uma coluna, já que alterei o meu código só no Group By, eu não estava obedecendo as quantidades de colunas. Vlw, obrigado Kakao me ajudou bastante.
  3. Não deu certo, apresenta erro no "on" quando executo.
  4. Olá pessoal, Preciso fazer uma consulta que recupere: O CRM, Nome e a quantidade de Telefones de cada médico. Para isso, eu tenho duas tabelas (medico e telefone_medico) Tentei realizar a consulta da seguinte forma: SELECT M.crm, M.nome COUNT(T.telefone) AS Total_Telefone FROM Medico M, Telefone_Medico T WHERE M.crm = T.crm GROUP BY M.crm Porém dá erro: syntax error at on near "(" Tentei de outras formas mas a única que saiu algo foi esta: SELECT T.crm, COUNT(*) AS Total_Telefone FROM Medico M, Telefone_Medico T WHERE M.crm = T.crm GROUP BY T.crm Porém tenho como retorno apenas o CRM, e a quantidade de Telefone agrupada por crm, mas não consigo obter o nome do médico. Qual o meu erro e como corrigir esta consulta?
×
×
  • Criar Novo...