SQL con LEFT JOIN y WHERE

6 views
Skip to first unread message

Jose Diaz

unread,
Jul 7, 2011, 7:20:31 PM7/7/11
to SQL México
Muy buenas noches para mi hora GMT actual

Es la primera vez que escribo en una lista de correo que trate sobre
sentencias SQL, no he hecho aun Off-topic en otras, por lo que
prefiero preguntar primero en una mas del caso como esta...

Tengo una SQL entre 4 tablas
- Empleados AS E (numepleado, nombre, apellido)
- Pago_Prima_Legal AS PPL (numemple, id_status, fechaElab)
- PPL_leyenda AS L (id, alias)
- Reportes AS RP

PPL y L deben relacionarse por id --> PPL.id_status = L.id
E y PPL deben relacionarse por Nro de Empleado --> E.numempleado =
PPL.numemple

El problema radica en que no todos los empleados tienen registros en
PPL al pedir una SQL por rango de Fecha (PPL.fechaElab).
Por lo que consideraria que necesito un LEFT JOIN entre E y PPL para
que me cargue una SQL con los Nros y Nombres de Empleados que igual no
tengan registros en PPL.

Entre PPL y L si seria un INNER JOIN entre sus ids (PPL.id_status =
L.id)

Esta SQL me funciona:
--------------------------------------------------------------------------------------
SELECT DISTINCT (E.numempleado) AS Numero, E.nombre+" "+E.apellido AS
Nombre,

(SELECT L.alias FROM PPL_leyenda L WHERE L.id=PPL.id_status) AS Status

FROM
empleados AS E LEFT JOIN pago_prima_legal AS PPL ON
E.numempleado=PPL.numemple
GROUP BY E.numempleado, E.nombre, E.apellido, PPL.id_status;
--------------------------------------------------------------------------------------

Pero le falta el filtrarme por rango de Fechas, ya que trae todo lo
que esta en la tabla PPL, y necesitaria pedir la data por rango de Mes
(del 1 al 31 de cada mes, etc) no otros meses o anios.

Me hace falta incluir la tabla Reportes AS RP y meter un WHERE
WHERE PPL.fechaElab BETWEEN RP.fechaDEL And RP.fechaAL

Un Where o algo que me permita tener un LEFT JOIN y un filtrado de
traer registros por un rango de fechas entre las tablas mencionadas.

Alguna sugerencia que pueda orientarme por pasar esta situacion?
Un cordial saludo o/
Reply all
Reply to author
Forward
0 new messages