HilarYo 0 Denunciar post Postado Fevereiro 14, 2014 Boas tardes, Tenho 3 tabelas, a tabela CLIENTES, INSCRICAO e AULAS. A tabela Inscrições tem chave estrangeiras: ID_CLIENTES (FK) ID_AULAS (FK) E chave primária:ID_INSCRICAOO Objectivo é criar um select, mas que apresente todas as tabelas em função das inscrições ou seja (tabela.atributo): INSCRICAO.ID_INSCRICAO | INSCRICAO.DATA | CLIENTES.CNOME | AULAS.ANOME | AULAS.DATA | AULAS.VAGAS | Já experimentei usar o modelo: SELECT INSCRICAO.ID_INSCRICAO, INSCRICAO.DATA, CLIENTES.CNOME, AULAS.ANOME,AULAS.DATA,AULAS.VAGAS FROM table1 INSCRICAO LEFT OUTER JOIN table2 CLIENTES ON INSCRICAO.ID_INSCRICAO=CLIENTES.ID_CLIENTES LEFT OUTER JOIN table3 AULAS ON AULAS.ID_AULA = INSCRICAO.ID_INSCRICAO;Ou me dá erro ou multiplica as linhas das tabelas, e o objectivo era ter o mesmo numero de registos que a tabela inscriçõesAlguém pode ajudar? Obrigado Cumps Citar Multi-Citar Editar Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Fevereiro 14, 2014 Nao seria ... table3 AULAS ON AULAS.ID_AULA = INSCRICAO.ID_aula; ? Compartilhar este post Link para o post Compartilhar em outros sites
HilarYo 0 Denunciar post Postado Fevereiro 14, 2014 Dá erro : Error starting at line : 1 in command - SELECT INSCRICAO.ID_INSCRICAO, INSCRICAO.DATA, CLIENTES.CNOME, AULAS.ANOME,AULAS.DATA,AULAS.VAGAS FROM table1 INSCRICAO LEFT OUTER JOIN table2 CLIENTES ON INSCRICAO.ID_INSCRICAO=CLIENTES.ID_CLIENTES LEFT OUTER JOIN table3 AULAS ON AULAS.ID_AULA = INSCRICAO.ID_aula Error at Command Line : 6 Column : 3 Error report - SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: O MODELO ER é o seguinte: O que queria mesmo era uma forma de por os registos das inscrições mas com os dados também das outras tabelas CLIENTES-INSCRICA-AULAS mesmo com o código SELECT INSCRICAO.ID_INSCRICAO, INSCRICAO.DATA, CLIENTES.CNOME, AULAS.ANOME,AULAS.DATA,AULAS.VAGAS FROM INSCRICAO LEFT OUTER JOIN CLIENTES ON INSCRICAO.ID_INSCRICAO=CLIENTES.ID_CLIENTES LEFT OUTER JOIN AULAS ON AULAS.ID_AULA = INSCRICAO.ID_aula; Dá o seguinte erro: Error starting at line : 1 in command - SELECT INSCRICAO.ID_INSCRICAO, INSCRICAO.DATA, CLIENTES.CNOME, AULAS.ANOME,AULAS.DATA,AULAS.VAGAS FROM INSCRICAO LEFT OUTER JOIN CLIENTES ON INSCRICAO.ID_INSCRICAO=CLIENTES.ID_CLIENTES LEFT OUTER JOIN AULAS ON AULAS.ID_AULA = INSCRICAO.ID_aula Error at Command Line : 4 Column : 38 Error report - SQL Error: ORA-00904: "CLIENTES"."ID_CLIENTES": invalid identifier 00904. 00000 - "%s: invalid identifier" *Cause: *Action: Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Fevereiro 14, 2014 A coluna é id_cliente , sem plural. Compartilhar este post Link para o post Compartilhar em outros sites
HilarYo 0 Denunciar post Postado Fevereiro 15, 2014 Agora consegue fazer o select mas o campo CNOME da tabela clientes so aparece 1 vez no topo em vez de repetir Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Fevereiro 15, 2014 "Partindo" de incricoes só serão exibidos os clinres que tiverem inscrições, é este o problema !? Compartilhar este post Link para o post Compartilhar em outros sites
HilarYo 0 Denunciar post Postado Fevereiro 16, 2014 CREATE OR REPLACE VIEW C_INSCRICOES SELECT INSCRICAO.ID_INSCRICAO,AULAS.DATA,CLIENTES.CNOME,AULAS.ANOME,AULAS.VAGAS FROM INSCRICAO LEFT OUTER JOIN CLIENTES ON CLIENTES.ID_CLIENTE=INSCRICAO.ID_CLIENTE LEFT OUTER JOIN AULAS ON AULAS.ID_AULA = INSCRICAO.ID_aula order by extract (DAY from AULAS.DATA)DESC; Já consegui solucionar o problema, Muito obrigado Cumprimentos Compartilhar este post Link para o post Compartilhar em outros sites