Jump to content
  • 0
Kefatif

[Resolvido] Último registro no SQL com base na data.

Question

Prezados, boa tarde.

 

No meu banco de dados tenho registro de estoque de alguns produtos e suas respectivas unidades.

 

Eu gostaria que a query só trouxesse o último registro dos produtos daquela unidade.

 

Utilizo Mysql como banco de dados.

 

Segue minha Query abaixo:

 

SELECT
A.ID_ESTOQUE,
D.CNES,
D.NOME_UNIDADE,
B.COBERTURA,
A.QTD,
C.DATA_REGISTRO

FROM 
lesao_rel_estoque_coberturas A

INNER JOIN 
lesao_coberturas B ON A.ID_COBERTURA = B.ID_COBERTURA

INNER JOIN
lesao_estoque C ON A.ID_ESTOQUE = C.ID_ESTOQUE

INNER JOIN
unidades D ON C.CNES = D.CNES

ORDER BY A.ID_ESTOQUE

 

Agradeço a todos desde já pela ajuda. 

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

Uma forma por subselect e max


 

SELECT
A.ID_ESTOQUE,
D.CNES,
D.NOME_UNIDADE,
B.COBERTURA,
A.QTD,
C.DATA_REGISTRO

FROM
lesao_rel_estoque_coberturas A

INNER JOIN
lesao_coberturas B ON A.ID_COBERTURA = B.ID_COBERTURA

INNER JOIN
lesao_estoque C ON A.ID_ESTOQUE = C.ID_ESTOQUE

INNER JOIN
unidades D ON C.CNES = D.CNES

WHERE C.DATA_REGISTRO = (SELECT MAX(E.DATA_REGISTRO)
                         FROM lesao_estoque E
                         WHERE E.ID_ESTOQUE = D.ID_ESTOQUE)

ORDER BY A.ID_ESTOQUE

 

Share this post


Link to post
Share on other sites
  • 0
2 horas atrás, Motta disse:

Uma forma por subselect e max


 


SELECT
A.ID_ESTOQUE,
D.CNES,
D.NOME_UNIDADE,
B.COBERTURA,
A.QTD,
C.DATA_REGISTRO

FROM
lesao_rel_estoque_coberturas A

INNER JOIN
lesao_coberturas B ON A.ID_COBERTURA = B.ID_COBERTURA

INNER JOIN
lesao_estoque C ON A.ID_ESTOQUE = C.ID_ESTOQUE

INNER JOIN
unidades D ON C.CNES = D.CNES

WHERE C.DATA_REGISTRO = (SELECT MAX(E.DATA_REGISTRO)
                         FROM lesao_estoque E
                         WHERE E.ID_ESTOQUE = D.ID_ESTOQUE)

ORDER BY A.ID_ESTOQUE

 

 

Obrigado pelo retorno, mas ao testar ele repete as unidades em dias diferentes.

 

Como posso fazer ele me trazer o registro mais recente do estoque das unidades.

 

O CNES é o código da unidade.

 

Agradeço.

 

 

Share this post


Link to post
Share on other sites
  • 0

@Motta, consegui adaptar o seu código a minha necessidade ficou perfeito!

 

Muito obrigado...

 

Segue o código adaptado:

 

SELECT
A.ID_ESTOQUE,
D.CNES,
D.NOME_UNIDADE,
B.COBERTURA,
A.QTD,
C.DATA_REGISTRO

FROM
lesao_rel_estoque_coberturas A

INNER JOIN
lesao_coberturas B ON A.ID_COBERTURA = B.ID_COBERTURA

INNER JOIN
lesao_estoque C ON A.ID_ESTOQUE = C.ID_ESTOQUE

INNER JOIN
unidades D ON C.CNES = D.CNES

WHERE C.DATA_REGISTRO = (SELECT MAX(E.DATA_REGISTRO)
                         FROM lesao_estoque E
                         WHERE E.CNES = C.CNES)

ORDER BY A.ID_ESTOQUE

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By manolegal
      Bom dia
      Tenho uma variável que traz vários dados de ID_LANÇAMENTO
      var_dump($meus_ids); array 0 => string '829' (length=3) 1 => string '830' (length=3) 2 => string '828' (length=3) Preciso fazer uma soma das quantidades constantes nestes 3 lançamentos e trazer em variável, porém variável está trazendo cada quantidade em separado, ao invés da soma.
      foreach($meus_ids as $item){ $Sql_lim = "SELECT SUM(CASE WHEN quantidade >= 11 then 10 else quantidade end) as quantidades_limite FROM minha_tabela WHERE id_lancamento = $item"; $Resultado_lim = executa($Sql_lim); $total_registros_lim = @pg_num_rows($Resultado_lim); while ($linha_lim = @pg_fetch_assoc($Resultado_lim)){ $quantidade_limite_consulta = $linha_lim["quantidades_limite"]; } // Fecha "while" } // Fecha foreach Utilizo BD Postgresql.
      O total de linhas retornadas é 1, o que em tese está correto.
      O problema é que ao invés de trazer a soma das quantidades, a variável está trazendo cada quantidade individualizada por lançamento. Onde posso estar errando?
    • By Sapinn
      Galera pergunta rápida eu adicionei em um coluna sem querer o fulltext como faço para remover ???
    • By igor8831
      Boa tarde pessoal  
      minha pergunta é simples
      tenho uma consulta que retorna
       
      produto   valor
      bala           10,00
      doce          30,00
      laranja       14,00
      banana      16,00
       
      então, precisaria receber em variavel que eu possa dar um echo ou em algum campo da seguinte forma
      10,00, 30,00, 14,00, 16,00
       
      Aguém pode me ajudar?
       
      Obrigado por hora....
    • By EVERTONERP
      select 
      EP.nrCNPJ                        AS CNPJ,    
      PV.nrNSU                         AS NSU, 
      convert(CHAR,PC.dtPagamento,103) AS Data_de_Pagamento,
      BD.idBandeira                    AS Codigo_Bandeira,
      BD.dsBandeira                    AS Descrição_Bandeira, 
      PC.vlPago                        AS Valor_do_Pagamento,
      PC.nrParcela                     AS Quantidade_de_Parcelas, 
      FP.dsFormaPagamento              AS Forma_Pagamento,
      ST.dsStatusParcela               AS Descrição_Status_Parcela 
      from card.tbEmpresa        AS EP
      LEFT JOIN card.tbPagamentoVenda AS PV ON EP.idEmpresa = PV.idEmpresa
      LEFT JOIN card.tbParcela        AS PC ON PV.idPagamentoVenda = PC.idPagamentoVenda
      LEFT JOIN card.tbBandeira       AS BD ON BD.idBandeira = PV.idBandeira
      LEFT JOIN card.tbFormaPagamento AS FP ON FP.idFormaPagamento = PC.idEmpresa
      LEFT JOIN card.tbMovimentoBanco AS MB ON MB.idMovimentoBanco = PC.idMovimentoBanco
      LEFT JOIN card.tbStatusParcela  AS ST ON ST.IdStatusParcela = PC.idStatusParcela
      GROUP BY card.tbBandeira.dsBandeira
      ---------------------#--------------------------------
      Mensage de erro ao rodar a query
      Mensagem 4104, Nível 16, Estado 1, Linha 19
      O identificador de várias partes "card.tbBandeira.dsBandeira" não pôde ser associado.
    • By joeythai
      Boa tarde rapaziada,
       
      Criei uma procedure que está trazendo os dados certinhos com exceção de uma coluna(Caminho do Arquivo) está cortando o nome do arquivo que salvo lá. O código é esse:
       
      <code>
      CREATE PROCEDURE dbo.clientes2 @Produto_ID INT = NULL, @Comprador_ID INT = NULL, @NM_Token NVARCHAR(MAX) = NULL, @DocumentoTipo INT = NULL, @NM_CPF CHAR(20) = NULL, @Teste INT = 0 AS   SET @Produto_ID = ISNULL(@Produto_ID, 0); SET @Comprador_ID = ISNULL(@Comprador_ID, 0); SET @NM_Token = RTRIM(LTRIM( ISNULL(@NM_Token, '') )); SET @DocumentoTipo = ISNULL(@DocumentoTipo, 0); SET @NM_CPF = RTRIM(LTRIM(@NM_CPF)); SET @Teste = ISNULL(@Teste, 1);   IF(@Teste = 1) BEGIN   IF(ISNULL(@Comprador_ID,0) > 0 AND @Produto_ID > 0)   BEGIN SELECT cliente.ID, cliente.Produto_ID, cliente.Carro_ID, cliente.Coligacao_ID, cliente.Cliente_ID, cliente.Deposito_ID, cliente.DocumentoTipo, CAST(cliente.NM_Arquivo AS nvarchar) as NM_Arquivo, CAST(cliente.NM_Token AS nvarchar) as NM_Token, cliente.NM_Responsavel, cliente.Data_BR, compradores.ID FROM Cliente cliente WITH (NOLOCK) INNER JOIN Produto produto WITH (NOLOCK) ON produto.ID = cliente.Produto_ID INNER JOIN Compradores compradores WITH (NOLOCK) ON compradores.ID = produto.Comprador_ID WHERE compradores.ID = @Comprador_ID AND cliente.Produto_ID = @Prodtuo_ID AND cliente.DocumentoTipo = @DocumentoTipo; END   END   ELSE BEGIN   IF(ISNULL(@Comprador_ID,0) > 0 AND @Produto_ID > 0)   BEGIN SELECT cliente.*, compradores.ID FROM Cliente cliente WITH (NOLOCK) INNER JOIN Produto produto WITH (NOLOCK) ON produto.ID = cliente.Produto_ID INNER JOIN Notas notas WITH (NOLOCK) ON notas.ID = produto.NVenda_ID INNER JOIN Compradores compradores WITH (NOLOCK) ON compradores.ID = notas.Comprador_ID WHERE compradores.ID = @Comprador_ID AND cliente.Produto_ID = @Produto_ID AND cliente.DocumentoTipo = DocumentoTipo; END   END   RETURN; </code>
       
      faço um join na tabela clientes, esse campo é de lá, e na tabela clientes o caminho do arquivo está salvo certinho, completo com o nome do arquivo.
      Alguem tem alguma ideia do que está errado ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.