Como encontrar o Último Registro Gravado na Tabela

10/04/2014

0

Bom dia Pessoal.
Estou com esse problema e não estou conseguindo resolver.
Tenho uma tabela de Romaneio e dentro dessa tabela vários campos de controles. Dentro dessa Tabela preciso encontrar o último Romaneio gravado seguindo a sequência de 2 Campos, ou seja. Na Tabela Consta várias Filiais. Quero encontrar o último romaneio gravado, tendo como base o Número da Filial e o Número de Série, nessa sequência.
Ex: Filial: 001 Série: 001 Romaneio: 001
Filial: 001 Série: 001 Romaneio: 002
Filial: 001 Série: 001 Romaneio: 003 Nesse caso Como eu faço para encontrar o romaneio 4?

essa é a minha procedure
CREATE PROCEDURE ROMANEIOS_ULTIMOGRAVADO(
@Serie_Romaneio NCHAR(3),
@Numero_Romaneio INT,
@Filial_Origem INT
)
AS
BEGIN
SELECT MAX (Filial_Origem) MAX (Serie_Romaneio) FROM tbRomaneios WHERE Filial_Origem = @Filial_Origem AND Serie_Romaneio = @Serie_Romaneio
END
GO

Garibaldo
Garibaldo Chaves

Garibaldo Chaves

Responder

Posts

10/04/2014

Jair N.

Bom Dia, esse manifesto de carga, (romaneio) você não grava a data que foi dado a manutenção (inclusão, alteração) porquê a sua consulta pegando o máximo da filial de origem e o máximo da serie não vai dar certo, pode esquecer. O "romaneio" tem que ser o máximo você já selecionou e filtrou por filial e serie pegue apenas o "MAX(romaneio) AS ultimo_emitido"
Ok


Responder

10/04/2014

Garibaldo Chaves

Jair, Bom dia.

Cada Filial pode ter a sua sequência de Romaneios. Se eu pegar o último emitido, então o sistema terá uma sequência única para todas a s filiais.
Responder

10/04/2014

Jair N.

]

Bem, seguinte: "eu não entendi porquê você está passando no parâmetro o "numero do romaneio" sendo que, esse é o que você quer (o último)!

Sua procedure (PROCEDURE ROMANEIOS_ULTIMOGRAVADO)
Begin
SELECT MAX(romaneio) AS ult_romaneio FROM tbRomaneios WHERE (Filial_Origem = @Filial_Origem) AND (Serie_Romaneio = @Serie_Romaneio);
End;

Capiti!
Responder

10/04/2014

Garibaldo Chaves

Jair realmente eu não preciso passar o número do romaneio, porém, eu não entendi a regra que você passou ou eu não me expressei corretamente.

Quanto ao número do Romaneio, você tem razão, eu realmente não preciso está passando.

Dentro da mesma tabela eu posso ter várias filiais EX: 001, 002, 003. Cada filial terá a sua numeração própria:

Ex: Filial: 001 Série: 001 Romaneio: 001 Filial: 002 Série: 001 Romaneio: 001 Filial: 003 Série: 001 Romaneio: 001
Filial: 001 Série: 001 Romaneio: 002 Filial: 002 Série: 001 Romaneio: 002 Filial: 003 Série: 001 Romaneio: 002
Filial: 001 Série: 001 Romaneio: 003 Filial: 002 Série: 001 Romaneio: 003 Filial: 003 Série: 001 Romaneio: 003

Eu vou passar via parâmetro o Número da Filial e a série do Romaneio.

Garibaldo
Responder

10/04/2014

Jair N.

Boa Tarde esqueci realmente, você deverá informar a "filial de origem e a de destino" para pegar o romaneio correto...
então:
SELECT MAX(romaneio) AS ult_romaneio FROM tbRomaneios WHERE (Filial_Origem = @Filial_Origem) AND (Filial_Destino = @Filial_destino) AND (Serie_Romaneio = @Serie_Romaneio);

Jair realmente eu não preciso passar o número do romaneio, porém, eu não entendi a regra que você passou ou eu não me expressei corretamente.

Quanto ao número do Romaneio, você tem razão, eu realmente não preciso está passando.

Dentro da mesma tabela eu posso ter várias filiais EX: 001, 002, 003. Cada filial terá a sua numeração própria:

Ex: Filial: 001 Série: 001 Romaneio: 001 Filial: 002 Série: 001 Romaneio: 001 Filial: 003 Série: 001 Romaneio: 001
Filial: 001 Série: 001 Romaneio: 002 Filial: 002 Série: 001 Romaneio: 002 Filial: 003 Série: 001 Romaneio: 002
Filial: 001 Série: 001 Romaneio: 003 Filial: 002 Série: 001 Romaneio: 003 Filial: 003 Série: 001 Romaneio: 003

Eu vou passar via parâmetro o Número da Filial e a série do Romaneio.

Garibaldo
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar