CONSULTA

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. *

Responses

Browse pgsql-es-ayuda by date

  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