Celamar 0 Denunciar post Postado Outubro 22, 2005 Como faco para montar um select que me retorne os PAIS e os FILHOS concatendos, veja a estrutua das tabelas:tabela CONTATO:SEQ_CONTATNOME_CONTATExemplos:1, 'MARIA';2, 'JOSE';3, 'PEDRO';tabela CURSO:SEQ_CURSONOME_CURSOExemplos:1, 'JAVA'2, 'DELPHI'3, 'PHP'tabela CURSO_CONTATOSEQ_CONTATSEQ_CURSOExemplos:1, 11, 21, 32, 22, 33, 1Gosatria de montar um relatorio mais ou menos assim:Contato: MariaCursos: JAVA, DELPHI, PHPContato: JoseCursos: DELHI, PHPContato: Pedrocursos: JAVaE agora? Como fazer issso? Compartilhar este post Link para o post Compartilhar em outros sites
proteus 0 Denunciar post Postado Outubro 23, 2005 sem lógica???só com sql??? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 24, 2005 Eu crio uma function que retorna uma string CREATE OR REPLACE FUNCTION CURSOS ( pSEQ IN CONTATO.SEQ_CONTATO%TYPE) RETURN VARCHAR2 IS Cursor c1 is Select NOME_CURSO From CURSO_CONTATO CC,CURSO C Where CC.SEQ_CONTAT = PSEQ AND CC.SEQ_CURSO = C.SEQ_CURSO; Saida VARCHAR2(200); BEGIN Saida:= ' '; FOR r1 In c1 LOOP if Length(Saida) < 200 then Saida := saida || r1.NOME_CURSO; end if; END LOOP; RETURN TRIM(Saida); END; / NUM SQL FICA SELECT CURSOS(12345) FROM DUAL OU SEELCT CURSOS(NUM_SEQ) FROM CONTATO. Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Outubro 24, 2005 Se estiver utilizando o Oracle 8i, faça: SELECT a.nome_contat as "Nome", b.nome_curso as "Curso" FROM Contato a, Curso b, Curso_Contato c WHERE a.seq_contat=c.seq_contat and b.seq_curso=c.seq_curso; Caso use o Oracle 9i, faça : SELECT a.nome_contat as "Nome", b.nome_curso as "Curso" FROM Contato a INNER JOIN Curso_Contato c ON a.seq_contat=c.seq_contat INNER JOIN Curso b ON b.seq_curso=c.seq_curso; Agora só formatar o resultado no seu RELATORIO! Abraços, http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Compartilhar este post Link para o post Compartilhar em outros sites