From: | Christian Ortiz <cpalst(at)gmail(dot)com> |
---|---|
To: | Eduardo Morras <emorras(at)s21sec(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Horas entre dos timestamp |
Date: | 2009-05-25 01:01:34 |
Message-ID: | 655c646a0905241801n49ce2c12h3ab722dc43445119@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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)
);
From | Date | Subject | |
---|---|---|---|
Next Message | Benjamin Solis | 2009-05-25 02:55:10 | Envio manual de posgrest en español |
Previous Message | Mario Cassanelli | 2009-05-24 20:52:33 | Re: linux y pos |