Horas entre dos timestamp

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

Responses

Browse pgsql-es-ayuda by date

  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