GARANTIR DESCONTO

Fórum Exibir apenas ultimo registro #57911

15/02/2007

0

Amigos, tenho uma consulta que quero que me retorne apenas a ultima data de acesso

Ex: SELECT CLIENTE, LOCAL, DATA FROM CLIENTE
INNER JOIN HISTORICO ON (CODCLIENTE=HCODCLIENTE)

Hoje vem assim

EDUARDO DA SILVA AÇOUGUE 01/01/2007 EDUARDO DA MESQUITA CANTINA 31/02/2007 EDUARDO DA SILVA CANTINA 01/02/2007


Quero este retorno


EDUARDO DA MESQUITA CANTINA 31/02/2007 EDUARDO DA SILVA CANTINA 01/02/2007


isto e o maior pela data


Sremulador

Sremulador

Responder

Posts

15/02/2007

Emerson Nascimento

algo assim:

SELECT CLIENTE, LOCAL, DATA FROM CLIENTE
INNER JOIN HISTORICO ON (CODCLIENTE=HCODCLIENTE)
where data = (select max(data) from historico h1 where h1.HCODCLIENTE = cliente.codcliente)

se é que a data está na tabela histórico...


Responder

Gostei + 0

15/02/2007

Sremulador

Amigo emerson ae e que mora o problema

se é que a data está na tabela histórico...


a data esta na tabela cliente


Responder

Gostei + 0

16/02/2007

Emerson Nascimento

e isso não dá certo?

SELECT CLIENTE, LOCAL, DATA FROM CLIENTE
INNER JOIN HISTORICO ON (CODCLIENTE=HCODCLIENTE)
where data = (select max(data) from cliente c1 where c1.CODCLIENTE = cliente.codcliente)


Responder

Gostei + 0

16/02/2007

Sremulador

e isso não dá certo? 


SELECT CLIENTE, LOCAL, DATA FROM CLIENTE 
INNER JOIN HISTORICO ON (CODCLIENTE=HCODCLIENTE) 
where data = (select max(data) from cliente c1 where c1.CODCLIENTE = cliente.codcliente)


não da, pq
select max(data) from cliente c1 where c1.CODCLIENTE = cliente.codcliente)
pode ter várias datas e Data do cliente e uma só, mesmo se eu agrupar não daria certo tb pois LOCAL e diferente em vários casos

:cry:


Responder

Gostei + 0

16/02/2007

Emerson Nascimento

publique a estrutura das tabelas. não dá pra saber em qual tabela está o campo selecionado.

outra coisa:
´pode ter várias datas e Data do cliente e uma só´ ???
não entendi! como data é uma só se no seu exemplo você mostrou duas datas diferentes para um mesmo cliente?


Responder

Gostei + 0

18/02/2007

Sremulador

Amigo emersom, mil descuplas as datas são de nascimento do cliente então são iguais, muda apenas o setor.

Extrutura

[b:9fd4580a75]CLIENTE[/b:9fd4580a75]
COD NOME DATANSC


[b:9fd4580a75]HISTORICO[/b:9fd4580a75]
CODCLI - CÓDIGO DO CLIENTE DATAMUDA - DATA DE MUDANÇA DE SETOR SETOR - SETOR



se eu conseguisse tipo assim

SELECT CLIENTE, LOCAL, DATA FROM CLIENTE 
INNER JOIN HISTORICO ON (CODCLIENTE=HCODCLIENTE AND MAX(DATAMUDA)) 



valeu


Responder

Gostei + 0

18/02/2007

Emerson Nascimento

veja se assim funciona (não testei):
select
  h.CODCLI,
  h.DATAMUDA,
  c.CLIENTE,
  c.LOCAL,
  c.DATA
from
  HISTORICO h
left join
  CLIENTE c on (c.COD = h.CODCLIENTE)
where
  h.DATAMUDA =
    (select max(h2.DATAMUDA)
     from HISTORICO h2
     where h2.CODCLIENTE = h.CODCLIENTE)



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar