digo23 0 Denunciar post Postado Novembro 21, 2005 Olá , alguem poderia me ajudar a fazer umas consultas ao banco , (exemplos) , consegui fazer aquela ai de baixo , mas foi dificil. Se puderem colaborar. vlw . As consultas devem envolver sempre pelo menos três tabelas; SELECIONE O CODIGO DO EMPREGADO , NOME E SALARIO , DOS EMPREGADOS QUE NÃO POSSUEM NENHUM DEPENDENTE. REPOSTA : COD_EMP NOME SALARIO ---------- -------------------------------------------------- ---------- 9999 Roberto Santos 300 select e.cod_emp, e.nome, e.salario from empregados e where not exists (select null from dependentes d where d.cod_emp = e.cod_emp) order by e.nome; Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Novembro 21, 2005 Você precisa fazer quais tipos de SELECTS! ou pode ser qualquer coisa.. Abraços, http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Compartilhar este post Link para o post Compartilhar em outros sites
digo23 0 Denunciar post Postado Novembro 21, 2005 Você precisa fazer quais tipos de SELECTS! ou pode ser qualquer coisa.. Abraços, http://forum.imasters.com.br/public/style_emoticons/default/grin.gifqualquer coisa Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Novembro 21, 2005 SQL> SELECT job, SUM(sal) PAYROLL 2 FROM emp 3 WHERE job NOT LIKE 'SALES%' 4 GROUP BY job 5 HAVING SUM(sal)>5000 6 ORDER BY SUM(sal); IN OperatorSQL> SELECT empno, ename, sal, mgr 2 FROM emp 3 WHERE mgr IN (7902, 7566, 7788); SQL> SELECT empno, hiredate, 2 MONTHS_BETWEEN(SYSDATE, hiredate) TENURE, 3 ADD_MONTHS(hiredate, 6) REVIEW, 4 NEXT_DAY(hiredate, 'FRIDAY'), LAST_DAY(hiredate) 5 FROM emp 6 WHERE MONTHS_BETWEEN (SYSDATE, hiredate)<200; SQL> SELECT e.ename, d.deptno, d.dname 2 FROM emp e, dept d 3 WHERE e.deptno(+) = d.deptno 4 ORDER BY e.deptno; SQL> SELECT worker.ename||' works for '||manager.ename 2 FROM emp worker, emp manager 3 WHERE worker.mgr = manager.empno; SQL> SELECT ename 2 FROM emp 3 WHERE sal > 4 (SELECT sal 5 FROM emp 6 WHERE empno=7566); SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE empno = 7369) 7 AND sal > 8 (SELECT sal 9 FROM emp 10 WHERE empno = 7876); Compartilhar este post Link para o post Compartilhar em outros sites
digo23 0 Denunciar post Postado Novembro 21, 2005 SQL> SELECT job, SUM(sal) PAYROLL 2 FROM emp 3 WHERE job NOT LIKE 'SALES%' 4 GROUP BY job 5 HAVING SUM(sal)>5000 6 ORDER BY SUM(sal); IN OperatorSQL> SELECT empno, ename, sal, mgr 2 FROM emp 3 WHERE mgr IN (7902, 7566, 7788); SQL> SELECT empno, hiredate, 2 MONTHS_BETWEEN(SYSDATE, hiredate) TENURE, 3 ADD_MONTHS(hiredate, 6) REVIEW, 4 NEXT_DAY(hiredate, 'FRIDAY'), LAST_DAY(hiredate) 5 FROM emp 6 WHERE MONTHS_BETWEEN (SYSDATE, hiredate)<200; SQL> SELECT e.ename, d.deptno, d.dname 2 FROM emp e, dept d 3 WHERE e.deptno(+) = d.deptno 4 ORDER BY e.deptno; SQL> SELECT worker.ename||' works for '||manager.ename 2 FROM emp worker, emp manager 3 WHERE worker.mgr = manager.empno; SQL> SELECT ename 2 FROM emp 3 WHERE sal > 4 (SELECT sal 5 FROM emp 6 WHERE empno=7566); SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE empno = 7369) 7 AND sal > 8 (SELECT sal 9 FROM emp 10 WHERE empno = 7876); Nenhuma deu certo aqui , mesmo modificando os dados.Eu tenho exemplos assim ( de outro banco ) , se pudesse transformar esses que você fez , tipo os abaixo.O código, nome e o número de consultas marcadas entre 14/05 e 20/05 de cada médico no setor 6. select consulta.cod_med, nome, count (*)from consulta, medicowhere consulta.cod_med = medico.cod_med and to_char(data,'dd/mm') between '14/05' and '20/05' and setor = '6'group by consulta.cod_med, nome;O nome e o código de todo médico obstetra. select nome, cod_medfrom Medicowhere cod_med in ( select cod_med from Med_Espec where cod_esp in ( select cod_espec from Especialidade where especialidade = 'Obstetrícia' )); Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Novembro 21, 2005 select consulta.cod_med, nome, count (*)from consulta, medicowhere consulta.cod_med = medico.cod_med andto_char(data,'dd/mm') between '14/05' and '20/05' and setor = '6'group by consulta.cod_med, nome;O cod_med você especificou de qual banco que é. Especifique tb o nome e o count(*) de que tabela.select nome, cod_medfrom Medicowhere cod_med in( select cod_medfrom Med_Especwhere cod_esp in( select cod_especfrom Especialidadewhere especialidade = 'Obstetrícia' ));Na tabela MedEspec você usa o cod_espNa tabela Especialidade você usa o cod_especEles realmente tem o nome diferente??Tem certeza que esta cadastrado Obstetrícia???Não é Obstetra?? E tem o acento mesmo?? Compartilhar este post Link para o post Compartilhar em outros sites
digo23 0 Denunciar post Postado Novembro 21, 2005 select consulta.cod_med, nome, count (*)from consulta, medicowhere consulta.cod_med = medico.cod_med andto_char(data,'dd/mm') between '14/05' and '20/05' and setor = '6'group by consulta.cod_med, nome;O cod_med você especificou de qual banco que é. Especifique tb o nome e o count(*) de que tabela.select nome, cod_medfrom Medicowhere cod_med in( select cod_medfrom Med_Especwhere cod_esp in( select cod_especfrom Especialidadewhere especialidade = 'Obstetrícia' ));Na tabela MedEspec você usa o cod_espNa tabela Especialidade você usa o cod_especEles realmente tem o nome diferente??Tem certeza que esta cadastrado Obstetrícia???Não é Obstetra?? E tem o acento mesmo??Isso não só exemplos de como tenho que fazer (linguagem) , tipo nos seus exemplos você usou ( Job , worker' works for '||manager ) , isso eu não entendi e tb não funciono aqui no banco.. Consultas devem conter aninhamento somente a cláusula exists ,in ou any);. Consultas devem conter a claúsula group by; Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Novembro 21, 2005 Melhor dar uma olhada em livros ou apostilas. Segue uma página muito boa de oracle, onde tem vários materiais para suas dúvidas.www.profissionaloracle.com.br Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Novembro 23, 2005 Tu não está conseguindo fazer quais tipos de SELECT! Abraços, http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Compartilhar este post Link para o post Compartilhar em outros sites