Consultas anidadas en SQL. ERROR 1241
Publicado por Pandalord (1 intervención) el 10/03/2020 20:03:25
Hola, tengo una duda sobre consultas anidadas, este es el ejercicio:
Mostrar el nombre del departamento cuya suma de salarios sea la más alta, indicando el valor de la suma.
teniendo dos tablas:
Departamentos(codDepto, nombreDpto, cuidad, codDirector)
Empleados(nDIEmp, nomEmp, sexEmp, fecNac, fecIncorporacion, salEmp, comisionE, cargoE, jefeID, codDepto)
Resultado:
SELECT sum(salEmp), codDepto FROM empleados GROUP BY codDepto
He logrado obtener la suma de salarios de cada uno de los departamentos, tengo entendido que a esta consulta habría que aplicarle una consulta donde se tenga el max(salEmp) de la suma de los salarios de cada uno de los departamentos.
lo he formulado de esta manera:
SELECT max(empleados.salEmp), nombreDpto
FROM empleados NATURAL JOIN departamentos
WHERE salEmp IN (SELECT sum(empleados.salEmp), empleados.codDepto FROM empleados GROUP BY codDepto)
GROUP BY codDepto
y me da error 1241.
Error Code: 1241. Operand should contain 1 column(s)
la duda en si es como utilizar un operador de agrupacion 'max(atributo)' sobre otro 'sum(atributo)',
es decir max(sum(atributo)).¿Se puede?¿Como lo hago?
Gracias por la ayuda de antemano!
Mostrar el nombre del departamento cuya suma de salarios sea la más alta, indicando el valor de la suma.
teniendo dos tablas:
Departamentos(codDepto, nombreDpto, cuidad, codDirector)
Empleados(nDIEmp, nomEmp, sexEmp, fecNac, fecIncorporacion, salEmp, comisionE, cargoE, jefeID, codDepto)
Resultado:
SELECT sum(salEmp), codDepto FROM empleados GROUP BY codDepto
He logrado obtener la suma de salarios de cada uno de los departamentos, tengo entendido que a esta consulta habría que aplicarle una consulta donde se tenga el max(salEmp) de la suma de los salarios de cada uno de los departamentos.
lo he formulado de esta manera:
SELECT max(empleados.salEmp), nombreDpto
FROM empleados NATURAL JOIN departamentos
WHERE salEmp IN (SELECT sum(empleados.salEmp), empleados.codDepto FROM empleados GROUP BY codDepto)
GROUP BY codDepto
y me da error 1241.
Error Code: 1241. Operand should contain 1 column(s)
la duda en si es como utilizar un operador de agrupacion 'max(atributo)' sobre otro 'sum(atributo)',
es decir max(sum(atributo)).¿Se puede?¿Como lo hago?
Gracias por la ayuda de antemano!
Valora esta pregunta


0