Fórum Problema para montar Select #539690
12/12/2015
0
Estou com um problema para gerar uma consulta, preciso fazer uma consulta que mostrar a data e hora que a pessoa entrou e a data e hora que a pessoa saiu em uma mesma linha para fazer o calculo de quanto tempo a pessoa ficou dentro do setor.
essa é a tabela
esse é o select que consegui até agora
Registros
Desde já agradeço.
essa é a tabela
CREATE TABLE ACESSO (
COD_ACESSO INTEGER NOT NULL,
COD_DISPOSITIVO INTEGER NOT NULL,
NUM_SETOR_ACESSO INTEGER NOT NULL,
DAT_ACESSO TIMESTAMP NOT NULL,
COD_USER INTEGER NOT NULL,
COD_ID_CRACHA INTEGER NOT NULL,
IND_TIPO_ACESSO VARCHAR(1) NOT NULL,
IND_TIPO_USER VARCHAR(1) NOT NULL
);esse é o select que consegui até agora
SELECT DISTINCT ENTRADA,
CASE WHEN ind_tipo_acesso = 'S' THEN DAT_ACESSO ELSE NULL END AS SAIDA,
ACE1.NUM_SETOR_ACESSO,
ACE1.COD_USER,
ACE1.IND_TIPO_USER
FROM ACESSO ACE1,
(SELECT CASE WHEN ind_tipo_acesso = 'E' THEN DAT_ACESSO ELSE NULL END AS ENTRADA,
COD_ACESSO,
NUM_SETOR_ACESSO,
COD_USER,
IND_TIPO_USER
FROM ACESSO ACE2
WHERE ACE2.ind_tipo_acesso = 'E'
or (ACE2.ind_tipo_acesso = 'S') ) AS AUX1
WHERE ACE1.cod_acesso <> AUX1.COD_ACESSO
AND ACE1.NUM_SETOR_ACESSO = AUX1.NUM_SETOR_ACESSO
AND ACE1.COD_USER = AUX1.COD_USER
AND ACE1.IND_TIPO_USER = AUX1.IND_TIPO_USER
AND (ENTRADA IS NOT NULL AND ACE1.dat_acesso IS NOT NULL)
Registros
INSERT INTO ACESSO (COD_ACESSO, COD_DISPOSITIVO, NUM_SETOR_ACESSO, DAT_ACESSO, COD_USER, COD_ID_CRACHA, IND_TIPO_ACESSO, IND_TIPO_USER) VALUES (1, 1, 1, '12-DEC-2015 00:00:00', 1, 1, 'E', 'V'); INSERT INTO ACESSO (COD_ACESSO, COD_DISPOSITIVO, NUM_SETOR_ACESSO, DAT_ACESSO, COD_USER, COD_ID_CRACHA, IND_TIPO_ACESSO, IND_TIPO_USER) VALUES (2, 1, 1, '12-DEC-2015 00:01:00', 1, 1, 'E', 'V'); INSERT INTO ACESSO (COD_ACESSO, COD_DISPOSITIVO, NUM_SETOR_ACESSO, DAT_ACESSO, COD_USER, COD_ID_CRACHA, IND_TIPO_ACESSO, IND_TIPO_USER) VALUES (3, 1, 1, '12-DEC-2015 00:02:00', 1, 1, 'S', 'V'); INSERT INTO ACESSO (COD_ACESSO, COD_DISPOSITIVO, NUM_SETOR_ACESSO, DAT_ACESSO, COD_USER, COD_ID_CRACHA, IND_TIPO_ACESSO, IND_TIPO_USER) VALUES (4, 1, 1, '12-DEC-2015 00:03:00', 1, 1, 'E', 'V'); INSERT INTO ACESSO (COD_ACESSO, COD_DISPOSITIVO, NUM_SETOR_ACESSO, DAT_ACESSO, COD_USER, COD_ID_CRACHA, IND_TIPO_ACESSO, IND_TIPO_USER) VALUES (5, 1, 1, '12-DEC-2015 00:04:00', 1, 1, 'S', 'V');
Desde já agradeço.
Tiago Soares
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)