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

Consulta recíproca SQL

Estas en el tema de Consulta recíproca SQL en el foro de Bases de Datos General en Foros del Web. Buenas tardes, tengo una duda sobre como realizar una consulta SQL, se la detallo a continuación. Tenemos la tabla trabajador, con la siguiente estructura: TRABAJADOR ...
  #1 (permalink)  
Antiguo 13/11/2008, 13:05
 
Fecha de Ingreso: abril-2008
Mensajes: 262
Antigüedad: 16 años
Puntos: 5
Consulta recíproca SQL

Buenas tardes, tengo una duda sobre como realizar una consulta SQL, se la detallo a continuación. Tenemos la tabla trabajador, con la siguiente estructura:

TRABAJADOR
==================
ID INTEGER PRIMARY KEY,
NOMBRE VARCHAR(50) NOT NULL,
OFICIO VARCHAR(50) NOT NULL,
TARIFA DECIMAL(4,2) NOT NULL


Quiero hacer una consulta SQL que me devuelva:

Los nombres de los trabajadores que reciben una tarifa menor que la del promedio de los trabajadores de su mismo oficio.

De tal forma, que si la media de lo que cobran los electricistas es 10 la hora, quiero saber qué electricistas cobran menos, y lo mismo con fontaneros, informáticos, etc... y todo en la misma consulta.

Espero me hayan entendido.
  #2 (permalink)  
Antiguo 13/11/2008, 17:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta recíproca SQL

Prueba esta:
Código sql:
Ver original
  1. SELECT tabla.nombre, tabla.oficio, tabla.tarifa FROM tabla INNER JOIN (SELECT oficio, avg(tarifa) media FROM tabla GROUP BY oficio)t1 ON tabla.oficio = t1.oficio AND tabla.tarifa < t1.media ORDER BY tabla.oficio, tabla.tarifa DESC
  #3 (permalink)  
Antiguo 14/11/2008, 12:19
 
Fecha de Ingreso: abril-2008
Mensajes: 262
Antigüedad: 16 años
Puntos: 5
Respuesta: Consulta recíproca SQL

Es justamente lo que quería, muchas gracias!
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 07:56.