From: | "fabian olmos" <fabianolmos806(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | CONSULTA |
Date: | 2007-03-14 13:13:44 |
Message-ID: | cd17fd4a0703140613v65df8c4cv827cb4d5eeaf9eae@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
hola que tal a todos. les explico la consulta que he querido hacer.
Tengo 2 tablas un de "empleados" con los siguientes campos:
- Cedula
- nombre
- apellido
- ubicacion
La otra tabla "acceso" posee los siguientes datos:
- Cedula (clave foranea con la cedula de empleados)
--------------------- cedula del empleado
- fecha -------- dia en que registra sus entrada y salida en el
horario de trabajo
- hora_i -------------------
- hora_ii Hora de entrada y salida del empleado
- hora_iii
- hora_iv ------------------
- ubicacion ---------------------- departamento donde se encuentra el
empleado (Ejemplo. 124)
(la clave de esta tabla es la cedula y la fecha)
Ahora lo que quiero es traerme para una fecha en especifico los empleado con
estatus 'A' que han registrado sus respectivas horas de entrada y salida
(hoa_i,hora_ii,hora_iii,hora_iv) y los que no para un departamento en
especifico.
lo resolvi de este modo pero creo que sea el mas eficiente
(SELECT a.cedula,(a.nombre||' '||a.apellido) AS nombre,b.hora_i,b.hora_ii,
b.hora_iii,b.hora_iv
FROM acceso.empleado a LEFT JOIN acceso.acceso b USING(cedula)
WHERE a.cod_ubic=124 AND b.fecha='2007-03-13' AND
a.estatus='A')
UNION
(SELECT a.cedula,(a.nombre||' '||a.apellido) AS nombre,(NULL)
AS hora_i,(NULL) AS hora_ii,(NULL) AS hora_iii,(NULL) AS hora_iv
FROM acceso.empleado a
WHERE a.cedula NOT IN(
SELECT b.cedula
FROM acceso.empleado b INNER JOIN
acceso.acceso c USING(cedula)
WHERE b.cod_ubic=124 AND c.fecha='2007-03-13')
AND a.cod_ubic=124 AND a.estatus='A')
*GRACIASSSSS. *
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-03-14 13:20:27 | Re: administracion |
Previous Message | Alvaro Herrera | 2007-03-14 12:48:16 | Re: error en pg_dump |