Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Robson Lima Costa

Select, so a maior data de cada codigo

Recommended Posts

Boa tarde, pessoal, seguinte, tenho uma tabela com alguns dados....

e preciso pegar todas as ultimas de todos os codigo.....ou seja, tenho em cada de cada codigo mais de uma data, preciso pegar so a maior data de cada codigo...como faço?....

Compartilhar este post


Link para o post
Compartilhar em outros sites

"...e preciso pegar todas as ultimas de todos os codigo" ( todas as ultimas oq?)

"...ou seja, tenho em cada de cada codigo mais de uma data" (em cada de cada oq?)

 

se puder colocar a estrutura da tabela ajuda..

 

Rocha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo assim.....tenho uma tabela com codigo, com data de abertura e data de chegada, e mais outros campos...

 

essa tabela principal vai para o rastreamento e eles vai digitar os processos...ex...

cod 1 - 12/03/2008 - Nao chegou ao destino

cod 1 - 13/03/2008 - a caminho

cod 1 - 14/03/2008 - chegou no destino...

e assim por diante para todos os codigo.....

preciso mostrar o ultimo lançamento de cada codigo.....no caso do codigo 1 o do dia 14/03....ai mostrar o ultimo do cod 2..e assim vai....

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma alternativa é fazer um SELECT com o MAX no código e data e realizar o inner em cima desse select, tudo na mesma tabela, exemplo:

 

Dados:

declare @tb table (cod int, data smalldatetime, obs varchar(30))
insert into @tb (cod, data, obs) values (1, '20080312', 'Nao chegou ao destino') 
insert into @tb (cod, data, obs) values (1, '20080313', 'a caminho') 
insert into @tb (cod, data, obs) values (1, '20080314', 'chegou no destino...') 
insert into @tb (cod, data, obs) values (2, '20080312', 'inicio') 
insert into @tb (cod, data, obs) values (2, '20080313', 'aguardando transporte') 
insert into @tb (cod, data, obs) values (3, '20080310', 'inicio')

Código:

select TB1.* from @tb TB1
inner join 
	(select max(data) as data, cod from @tb group by cod) TB2
on 
	TB1.data = TB2.data
	and TB1.cod = TB2.cod
order by 
	TB1.cod

Retorno:

cod		 data												   obs							
----------- ------------------------------------------------------ ------------------------------ 
1		   2008-03-14 00:00:00									chegou no destino...
2		   2008-03-13 00:00:00									aguardando transporte
3		   2008-03-10 00:00:00									inicio

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola eriva_br

 

Para esse mesmo codigo, se eu precisase buscar um campo de uma outra tabela atraves de uma chave estrangeira

por ex:

se na tabela @tb (cod, data, obs) ao inves disse eu tivesse (idcod, data obs) e uma tabela codigo(idcod, cod)

como ficaria o codigo abaixo para trazer o mesmo resultado ???

 

Código:

select TB1.* from @tb TB1
inner join 
	(select max(data) as data, cod from @tb group by cod) TB2
on 
	TB1.data = TB2.data
	and TB1.cod = TB2.cod
order by 
	TB1.cod

Retorno:

cod		 data												   obs							
----------- ------------------------------------------------------ ------------------------------ 
1		   2008-03-14 00:00:00									chegou no destino...
2		   2008-03-13 00:00:00									aguardando transporte
3		   2008-03-10 00:00:00									inicio

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.