Selecionar última linha da consulta

04/06/2017

0

Boa noite prezados,

Fiz uma consulta SQL e preciso que retorne apenas o valor do último sequencial (sequencial) na data (datamovimento) para cada local de estoques (codloc), ou seja:

Exemplo da consulta


Query:

SELECT A.DATAMOVIMENTO ,
A.IDPRD ,
A.SEQUENCIAL ,
A.CODLOC ,
A.SALDOMOV ,
A.TOTALMOV ,
A.CUSTOMEDMOV ,
B.NOMEFANTASIA ,
C.CODTB3FAT ,
CASE WHEN CODTB3FAT = '001' THEN 'Medicamentos Hospitalares'
WHEN CODTB3FAT = '002' THEN 'Materiais Hospitalares'
ELSE C.CODTB3FAT
END CLASSIFICAÇÃO
FROM TRELSLD AS A
INNER JOIN tproduto AS B ON A.idprd = B.idprd
INNER JOIN TPRODUTODEF AS C ON A.IDPRD = C.IDPRD
AND A.CODCOLIGADA = C.CODCOLIGADA
WHERE A.CODFILIAL = 2
AND CODLOC IN ( 01.004, 01.001 )
AND a.IDPRD = 672
ORDER BY DATAMOVIMENTO


Agradeço muito desde já.
Adriano

Adriano

Responder

Post mais votado

05/06/2017

Boa noite Adriano.

Essa query abaixo deve retornar o que você precisa.
Porém se precisar dos demais campos, teremos que dar uma mexida nela.


SELECT 
	A.DATAMOVIMENTO ,
	A.CODLOC ,
	MAX(A.SEQUENCIAL) AS SEQUENCIAL,
FROM
	TRELSLD AS A
WHERE 
	A.CODFILIAL = 2
	AND CODLOC IN ( 01.004, 01.001 )
	AND a.IDPRD = 672
GROUP BY
	A.DATAMOVIMENTO ,
	A.CODLOC



Grande abraço

Luiz Santos

Luiz Santos
Responder

Mais Posts

05/06/2017

Adriano

Boa noite. Obrigado por me ajudar!
Responder

06/06/2017

Luiz Santos

Bom dia Adriano.
Mas resolveu seu problema?

Grande abs
Responder

06/06/2017

Adriano

Bom dia,

Precisava de mais colunas. Aí descobri como fazer por CTE.

with rownumber as(
select
ROW_NUMBER() over(partition by a.idprd, a.codloc order by a.sequencial desc)as rownumber
,A.SEQUENCIAL 
,A.DATAMOVIMENTO
,A.IDPRD							    
,A.CODLOC
,A.SALDOMOV
,A.TOTALMOV
,A.CUSTOMEDMOV
,B.NOMEFANTASIA
,case when C.CODTB3FAT='001' then 'Medicamentos'
	  when C.CODTB3FAT='002' then 'Materiais' 
else C.CODTB3FAT end Tipo
from TRELSLD as A
inner join tproduto AS B
on A.idprd=B.idprd
inner join TPRODUTODEF AS C
on A.IDPRD=C.IDPRD AND A.CODCOLIGADA=C.CODCOLIGADA
WHERE A.CODFILIAL=2  and a.IDPRD IN (661, 662) and A.DATAMOVIMENTO <='2017-06-05 00:00:00.000' )
select * from rownumber where rownumber=1
Responder

06/06/2017

Luiz Santos

BOA.

Grande abs
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar