Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia.
Peguei alguns exercicios para estudar SQL e me deparei um com problema
tenho 2 tabelas: funcionarios e cargo
fazendo uma pesquisa preciso mostrar o menor e o maior salarios (cargo) de seus respectivos funcionarios
na pequisa ou consigo mostrar os 2 salarios ou o nome de todos os funcionarios, não consigo por exeplo mostrar
Funcionario salario
Joao 800
Maria 1000
ou qualquer outro jeito que eu mostre o menor salario com seu funcionario e o maior.
tentei fazer subselects, mas não estou sabendo a sintaxe do código, alguem pode me ajudar???
CREATE TABLE CUR_FUNCIONARIOS(
COD_PESSOA NUMBER(7) NOT NULL,
NOM_PESSOA VARCHAR2(25) NOT NULL,
END_PESSOA VARCHAR2(50),
CONSTRAINT PK_FUNCIONARIO PRIMARY KEY (COD_PESSOA)
);
CREATE TABLE CUR_CARGO(Um dos meus selects foi
SELECT NOM_PESSOA, MAX(VAL_SALARIO)
FROM CUR_FUNCIONARIOS A, CUR_CARGO B
WHERE A.COD_PESSOA = B.COD_PESSOA;
No select deu um erro falando: "não é uma função de grupo simples"
SELECT NOM_PESSOA, (SELECT MAX(VAL_SALARIO) FROM CUR_CARGO)WHERE A.COD_PESSOA = B.COD_PESSOA;
No select acima, aparece todos os funcionarios com o maior salario.
SELECT NOM_PESSOA, SAL.SALARIO_MAXEste foi o ultimo que tentei mas que da erro falando que o nome da tabela esta errado
Estou meio perdido nesta loja, ou na sintaxe de como montar o código
Tenho inserts basico para povoar as tabelas, e o objetivo da pesquisa é mostrar o funcionario e o menor salario, funcionario e o maior salario.
Estou com dificuldade pois quando coloca Max(val_salario) ou min(val_salario), daerro pois não é uma função simples e quando tento fazer uma subconsulta, da outros erros.
1) falta de group by
SELECT NOM_PESSOA, MAX(VAL_SALARIO)
FROM CUR_FUNCIONARIOS A, CUR_CARGO B
WHERE A.COD_PESSOA = B.COD_PESSOA
GROUP BY NOM_PESSOA;
2) maior salÁrio
SELECT MAX(VAL_SALARIO)
FROM CUR_FUNCIONARIOS , CUR_CARGO
WHERE CUR_FUNCIONARIOS.COD_PESSOA = CUR_CARGO.COD_PESSOA
3) PESSOA DE MAIOR SALÁRIO
SELECT MAX(VAL_SALARIO)
FROM CUR_FUNCIONARIOS , CUR_CARGO
WHERE CUR_FUNCIONARIOS.COD_PESSOA = CUR_CARGO.COD_PESSOA
AND CUR_CARGO.VAL_SALARIO = (SELECT MAX(VAL_SALARIO)
FROM CUR_FUNCIONARIOS , CUR_CARGO
WHERE CUR_FUNCIONARIOS.COD_PESSOA = CUR_CARGO.COD_PESSOA)Muito Obrigado Motta!
me deu uma luz aqui.
Vou tentar montar agora!
>
Bom dia.
Peguei alguns exercicios para estudar SQL e me deparei um com problema
tenho 2 tabelas: funcionarios e cargo
fazendo uma pesquisa preciso mostrar o menor e o maior salarios (cargo) de seus respectivos funcionarios
na pequisa ou consigo mostrar os 2 salarios ou o nome de todos os funcionarios, não consigo por exeplo mostrar
Funcionario salario
Joao 800
Maria 1000
ou qualquer outro jeito que eu mostre o menor salario com seu funcionario e o maior.
tentei fazer subselects, mas não estou sabendo a sintaxe do código, alguem pode me ajudar???
Consegui resolver meu problema graças a luz que o MOTTA me deu.
Juntando os codigos que ele me passou, consegui encontrar o maior salario junto com o nome da pessoa, depois usando o UNION fiz o mesmo select trocando o MAX por MIM
segue comando usado:
SELECT NOM_PESSOA AS NOME, VAL_SALARIO AS SALARIO
FROM CUR_FUNCIONARIOS A, CUR_CARGO B
WHERE A.COD_PESSOA = B.COD_PESSOA AND
B.VAL_SALARIO = (SELECT MAX(VAL_SALARIO)WHERE A.COD_PESSOA = B.COD_PESSOA AND
B.VAL_SALARIO = (SELECT MIN(VAL_SALARIO):clap:
>
:clap:
Olá amigos,sou novo no sql e estou fazendo uma cadeira e tenho tido bastante dificuldade, instalei o oracle para estudar e habilitei o banco/user HR preciso fazer um select do seguinte.
1. Fazer uma pesquisa e retornar o Nome/sobreNome do funcionário com o maior salário.
SELECT first_name||' '||last_name, salary
FROM employees and
(SELECT MAX(salary)
FROM employees)
poderiam me dizer onde estou errando? tenho uma série de exercicios para fazer.
>
Olá amigos,sou novo no sql e estou fazendo uma cadeira e tenho tido bastante dificuldade, instalei o oracle para estudar e habilitei o banco/user HR preciso fazer um select do seguinte.
1. Fazer uma pesquisa e retornar o Nome/sobreNome do funcionário com o maior salário.
SELECT first_name||' '||last_name, salary
FROM employees and
(SELECT MAX(salary)
FROM employees)
poderiam me dizer onde estou errando? tenho uma série de exercicios para fazer.
Consegui, estava fazendo o maior absurdo... heehheh mas como estou começando acho que até é aceitável.
Vlww galera.
SELECT first_name||' '||last_name, salary
FROM employees
where salary=(SELECT MAX(salary)
FROM employees)Estou com outra questão que talvez possam me ajudar.
estou usando o usuário/banco HR
Fazer uma pesquisa e retornar as regiões e a quantidade de escritórios.(Mostrar a região e o número de escritórios).
será que alguém pode me ajudar?? não estou sabendo relacionar os campos/tabelas.
Obrigado.
Olá dyggos
select r.regiao, count(e.escritorios)
from regiao r, escritorios e
where r.id = e.id_regiao
group by r.regiao
Publica por favor a descrição das tabelas e a sql que você fez.