Duvida sobre SQL

1 resposta
Vinicius_Zibetti_Res

Sei que estou no forum correto porem gosto muito daqui então vou perguntar aqui mesmo.

Eu tenho um exercicio da aula pra resolver mas sinceramente não está dando pra resolver, esta muito complicado pra mim.

Usando update, equiparar o salário dos técnicos II ao maior salário da seção
onde trabalha.

secao:
codigo | descricao | diretoria
--------±-----------±----------
ADM | Admissao | PES
FPG | Folha Pgto | PES
CPG | Ct a Pagar | FIN
CRC | Ct Receber | FIN
MAN | Manufatura | PRD
QLD | Qualidade | PRD

funcao:
funcao | descricao
--------±-----------
1 | Supervisor
2 | Auxiliar
3 | Tecnico I
4 | Tecnico II
5 | Trainee

funcionario:
matricula | nome | nascimento | salario | funcao | secao
-----------±----------------±-----------±--------±-------±------
12342 | Claudia | 1971-04-21 | 4500.00 | 1 | ADM
45739 | Andre | 1983-08-03 | 1200.00 | 2 | CPG
34840 | Marta | 1979-11-15 | 2100.00 | 3 | ADM
38283 | Sandro | 1974-10-09 | 3800.00 | 1 | CRC
26360 | Luis | 1976-08-12 | 3400.00 | 4 | MAN
15730 | Ana | 1973-12-04 | 3000.00 | 4 | FPG
46373 | Sandra | 1983-09-14 | 1400.00 | 2 |
36392 | Marcos | 1971-04-21 | 2900.00 | 4 | CRC
29847 | Luana | 1972-03-26 | 3800.00 | 1 | FPG
19463 | Pedro | 1984-10-05 | 1200.00 | 2 | ADM
28912 | Nanci | 1972-01-29 | 4600.00 | 1 | MAN
30472 | Paula | 1976-08-20 | 3500.00 | 4 | MAN
40528 | Fabio | 1973-03-15 | 2400.00 | 3 | MAN
22189 | Andreia | 1982-07-21 | 1300.00 | 2 | FPG
30352 | Raquel | 1974-04-30 | 2200.00 | 3 | CPG

Gente simplesmente não esto conseguindo bolar essa instrução SQL, o que eu ja fiz foi isso aqui:
UPDATE funcionario SET salario = (SELECT MAX(salario) FROM funcionario WHERE secao = (SELECT codigo FROM secao WHERE secao.codigo = secao)) WHERE funcao = (SELECT funcao FROM funcao WHERE descricao = ‘Tecnico II’) RETURNING salario, secao;

“USANDO POSTGREE”.

Sei que está errado mas simplesmente não consigo bolar a lógica, me ajudem por favor.

1 Resposta

Vinicius_Zibetti_Res

Consegui fazer, uffa que sufoco…

UPDATE funcionario SET salario = (SELECT MAX(salario) FROM funcionario AS aux WHERE aux.secao = funcionario.secao)  WHERE funcao =  (SELECT funcao FROM funcao WHERE descricao = 'Tecnico II');
Criado 3 de abril de 2012
Ultima resposta 5 de abr. de 2012
Respostas 1
Participantes 1