Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Dudas Subquery

Estas en el tema de Dudas Subquery en el foro de Mysql en Foros del Web. Hola, soy nuevo en MySQL, y tengo dudas con las subconsultas, tengo que realizar este ejercicio: Obtener todos los datos del departamento que más dinero ...
  #1 (permalink)  
Antiguo 21/02/2013, 14:40
 
Fecha de Ingreso: febrero-2013
Mensajes: 33
Antigüedad: 11 años, 1 mes
Puntos: 0
Dudas Subquery

Hola, soy nuevo en MySQL, y tengo dudas con las subconsultas, tengo que realizar este ejercicio: Obtener todos los datos del departamento que más dinero le cuesta a la empresa, es decir, donde la suma de los sueldos (SALARIO + COMISION) es mayor que en el resto de departamentos. , y aunque esto no sea una subconsulta (mysql> select SUM(salario+ifnull(comision,0)), dep_no from empleados group by dep_no;), es a lo máximo que llego que funcione, me podeis hechar una mano???

Gracias.
  #2 (permalink)  
Antiguo 22/02/2013, 07:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Dudas Subquery

No se hacen ejercicios.

Divide y venceras....

Cita:
Obtener todos los datos del departamento
Obtener los datos de un departamento, esa es facil

Cita:
que más dinero le cuesta a la empresa, es decir, donde la suma de los sueldos (SALARIO + COMISION) es mayor que en el resto de departamentos
Obtener el maximo de una suma y el departemento..... ordena y modifica esa que sugieres...

Mira los apuntes como puedes usar la segunda para que te seleccione sobre la primera....

(Ojo que por aqui andan profes participando)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 22/02/2013, 10:50
 
Fecha de Ingreso: febrero-2013
Mensajes: 33
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Dudas Subquery

Gracias, si mi intención no es que me hagan los ejercicios, sino que me den las pistas necesarias para hacerlo, por eso pongo el trozo de código de hasta donde he llegado)

Como digo, he llegado a sacar el coste(salario+ comisión) de cada departamento, pero justo ahí me quedo pillado. Sé(o pienso) que debo hacer una unión de tablas, pero no se como introducir la igualdad(el numero de departamento = al departamento con mayor coste)

Gracias
  #4 (permalink)  
Antiguo 22/02/2013, 11:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Dudas Subquery

Cita:
Gracias, si mi intención no es que me hagan los ejercicios, sino que me den las pistas necesarias para hacerlo, por eso pongo el trozo de código de hasta donde he llegado)
Pues trata de escribir un poco más claro, y separar el código SQL para que podamos verlo.
Escribir todo continuado no permite entender lo que el forista quiere. Para eso hace siglos que se inventaron los párrafos, los puntos aparte, y otros artilugios gramaticales y ortográficos: Para que se entienda lo que se quiere expresar.
Fíjate que todos en FDW intentamos escribir claramente para asegurarnos que se comprenda bien, en especial porque en foros técnicos como este, la claridad es esencial.

Yendo al punto: Quimfy ya te lo anticipó: divide y vencerás:

Obtener todos los datos del departamento:

Cita:
SELECT *
FROM departamentos;
Obtener todos los costos de sueldo por departamento:

Código MySQL:
Ver original
  1. select dep_no, SUM(salario+ifnull(comision,0)) totalDpto
  2. from empleados
  3. group by dep_no
¿Sabes obtener el máximo?
¿Conoces el uso de HAVING?

Bueno, esas son las cosas que necesitas combinar.

Muestrame cómo lo harías tu.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: dudas, select, sql, subquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:18.