Saludos,

un favor,estoy varias horas tratando de hacer una sentencia SQL en
postgreSQL 8.2 y no tengo resultados positivos :(
les explico :

tengo que hacer una consulta que me devuelva el nombre de los trabajadores
con las horas que ha trabajado en un determinado rango de fechas. Hay
trabajadores q no marcaron su salida. Lo que he estado intentando es esto

 select
             (select sum(marchora) from stmarcacion where marctipo = 'SA'
and trabdociden = '30962051') -
             (select sum(marchora) from stmarcacion where marctipo = 'IN'
and trabdociden = '30962052')  as horas,
   sttrabajador.trabnombre, trabapepa , trabapema, sttrabajador.trabdociden
from stmarcacion

full outer join

sttrabajador  on stmarcacion.trabdociden = sttrabajador.trabdociden
 where sttrabajador.trabdociden = '30962051'
group by sttrabajador.trabnombre, trabapepa , trabapema,
sttrabajador.trabdociden


el problema es q no me devuelve un entero, y ademas hay casos que me
devuelve negativos :( alguna idea

las tablas estan abajo



tengo 3 tablas
CREATE TABLE STtipoTrabajador (
    titrCodigo varchar(2) not null unique,
    titrTipo varchar(50) not null unique
);


CREATE TABLE STtrabajador (
    trabID serial UNIQUE NOT NULL,
    trabNombre varchar(35) not null,
    trabApePa varchar(35) not null,
    trabApeMa varchar(35) not null,
    trabdociden varchar(12) unique not null, --Documento de identificacion
DNI
    titrcodigo varchar(2),  --  VE: Vendedor, AC: Activista, AL: Almacenero
    trabEstado varchar(2) default 'AC',
    cecoCodigo varchar(2),
    usuaApodo varchar(65),
    audifecha timestamp default current_timestamp,
    PRIMARY KEY(trabID,trabdociden),
    FOREIGN KEY(titrcodigo) REFERENCES STtipoTrabajador(titrcodigo)
);


CREATE TABLE STmarcacion (
    marcid serial unique not null,
    trabdociden varchar(12),
    marctipo varchar(2), --IN: Ingreso,  SA: Salida
    marchora time default current_time,
    marcdia timestamp default current_timestamp,
    PRIMARY KEY(marcid),
    FOREIGN KEY(trabdociden) REFERENCES STtrabajador(trabdociden)
);

Responder a