AYUDA en SQL

Iori_

Bovino maduro
#1
Tengo el siguiente problema

tengo una tabla llamada PERSONAL la cual contiene 3 columnas con Nombre Edad y Sueldo y tengo capturadas 15 gentes.

Nombre
Edad
Sueldo
Pepe
18
100
Angel
24
100
Ismael
35
100
Rudy
18
100
Paola
20
100
Carmen
25
100
Daniel
18
100
Alejandro
30
100
Rosa
48
100
Ulices
32
100
Jorge
18
100
Francisco
36
100
Fernanda
24
100
Liliana
18
100
gloria
22
100

TOTAL
1500

ahora necesito filtrar para que me aparescan solo las personas mayores de 18:

SELECT * FROM PERSONAL
WHERE Edad >=18

quedaria asi

Nombre
Edad
Sueldo
Angel
24
100
Ismael
35
100
Paola
20
100
Carmen
25
100
Alejandro
30
100
Rosa
48
100
Ulices
32
100
Francisco
36
100
Fernanda
24
100
gloria
22
100

TOTAL
1500

Por lo que me quedarian 10 gentes , mi pregunta es como puedo REDISTRIBUIR el TOTAL del Sueldo entre las 10 personas que quedaron.
 

omega96

Bovino Milenario
#2
no entiendo que quieres decir con resitribuir, pero me imagino que quieres modificar el salario, para esto te recomiendo que uses una clave primaria para que no haya registros repetidos, por ejemplo si tienes 2 personas llamadas juan en tu tabla y ambas son mayores de 18 años te las pondra, pero al actualizar tienes que dar una referencia unica y no afectar a los otros registros que cumplen con tu consulta por ejemplo si tenemos:

id nombre sueldo
1 juan perez 1000
2 juan lopez 5000

y solo quieres modificar el primer registro haces esto

update personal set sueldo = 5200 where id=1;

esto actualizar el salario del campo con id 1
saludos.
 

anarkista

Bovino maduro
#3
Aparte de lo que comenta el buen amigo omega96, lo que entiendo es que el total del sueldo de las personas que tiene más de 18 años por ejemplo es de 1500 y las que sobran son 10, entonces sería 1500 / 10 = 150, entonces a cada persona que TIENE menor de 18 años se le actualizaría su sueldo a 150 ??

Si es así, podrías hacerlo de esta manera segun mi entendimiento.

UPDATE PERSONAS SET SUELDO =
(SELECT SUM(SUELDO) FROM PERSONAS WHERE EDAD >= 18) / (SELECT COUNT(ID) FROM PERSONAS WHERE EDAD < 18)
WHERE EDAD < 18

Aquí ya le puse el campo Id que propone el compañero omega96

A ver si te sirve o explícanos mejor lo que necesitas.

Saludos.
 
Arriba