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)
);