Membro desde: 13/05/2007 21:26:57
Mensagens: 317
Localização: Belém - PA / Santo André - SP
Offline
Creio que ficaria assim:
join da tabela TBPESSOA(IDPESSOA) com a tabela TBCOLAB(IDPESSOA) join da tabela TBCOLAB(IDCOLAB) com a tabela TBHISTOCRATH(IDCOLAD) buscando também pelo MAX(DATAINI)
Bacharel em Ciência da Computação (CESUPA)
Oracle 11g Certified SQL Expert
Oracle 11g Certified Associate
Linux Professional Institute Certified (LPIC-I)
Membro desde: 02/02/2012 15:27:59
Mensagens: 3
Offline
Pessoal,
Obrigado pela ajuda ! Conforme voces falaram eu consegui fazer funcionar.
Mas sempre tem um ''Porem" e é nele que fiquei de mãos atadas.
Me deparei com o seguinte problema:
Na tabela TBHISTOCRACH tem os campos DATAINI/HORAINI e DATAFINA/HORAFINA. Na tabela que preciso pegar os acessos de cada pessoa (TBMARCACESS) tem os campos DATAACES/HORAACES.
Com base na data e hora do acesso, preciso que o resultado seja um valor entre a TBHISTOCRACH.DATAINI/HORAINI e TBHISTOCRACH.DATAFINA/HORAFINA.
Acredito que este seja um grande problema. Não tenho nem ideia se isso realmente é possivel.
Membro desde: 02/02/2012 15:27:59
Mensagens: 3
Offline
Pessoa,
Com muita luta eu consegui fazer funcionar. Para quem precisar um dia:
SELECT * FROM tbpessoa
INNER JOIN tbcolab ON (tbpessoa.idpessoa = tbcolab.idpessoa)
INNER JOIN tbhistocrach ON (tbhistocrach.idcolab = tbcolab.idcolab)
inner join tbmarcaacess on (tbhistocrach.icard = tbmarcaacess.icard and tbhistocrach.datainic > tbmarcaacess.dataaces and tbhistocrach.datafina < tbmarcaacess.dataaces)
where tbhistocrach.stathist = 1
order by dataaces desc
O que que eu fiz. Eu peguei o valor da data de marcação e falei que ele teria que ser entre o valor de data inicio e data fim.