SELECIONAR O VALOR DO ULTIMO REGISTRO E AGREGAR

 Tópico anterior Próximo tópico Novo tópico

SELECIONAR O VALOR DO ULTIMO REGISTRO E AGREGAR

SQL / DATABASE

 Compartilhe  Compartilhe  Compartilhe
#481296 - 27/04/2018 18:22:54

WMR2018
BALSAS
Cadast. em:Outubro/2017


Pessoal,

Tenho 2 tabelas: PRODUTOS e PRODUTOS_PRECOS

Na tabela PRODUTOS coloco os dados do produto (cod, cod_barra, descricao, etc)
na tabela PRODUTOS_PRECOS vou adicionando o preço cada vez q chega novas mercadorias... ou seja... se um mesmo produto chegar num ano 10x... entao vao ser 10 registros com o mesmo COD_PRODUTO... sendo que o ultimo cadastro é o que defini o valor de venda daquele produto

Gostaria de exibir no grid, dados do produto (cod, cod_barra, descricao, quant, categoria, etc) e tambem o valor de venda (ultimo registro inserido na tabela produtos_precos)

entao fiz assim:
    sSQL = "SELECT DISTINCT produtos.ref AS var_Ref, produtos.codigo AS varCodProd, produtos.cod_barra AS var_codbarra, produtos.descricao AS var_desc, " & _
      "produtos.fabricante AS var_fab, produtos.NCM AS var_NCM, produtos.CFOP AS var_CFOP, produtos.unid_medida AS var_med, produtos.quant_estoque AS var_quant, " & _
      "(SELECT TOP 1 Produtos_Precos.VALOR_VV FROM Produtos_Precos INNER JOIN produtos ON Produtos_Precos.cod_produto = produtos.codigo ORDER BY Produtos_Precos.CODIGO DESC) AS venda " & _
      "FROM produtos INNER JOIN Produtos_Precos ON  produtos.codigo = Produtos_Precos.cod_produto "


Não dar erro nao... simplesmente a coluna onde era para aparecer o valor de venda fica vazio... as outras colunas todas preenchidas

Onde tá o erro?




Resposta escolhida #481298 - 27/04/2018 18:38:22

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Você está usando uns joins aí desnecessários:

SELECT produtos.ref AS var_Ref, produtos.codigo AS varCodProd, produtos.cod_barra AS var_codbarra, produtos.descricao AS var_desc, " & _
      "produtos.fabricante AS var_fab, produtos.NCM AS var_NCM, produtos.CFOP AS var_CFOP, produtos.unid_medida AS var_med, produtos.quant_estoque AS var_quant, " & _
      "(SELECT TOP 1 Produtos_Precos.VALOR_VV FROM Produtos_Precos Where produtos_precos.Codigo_produto = produtos.codigo order by DATA_DESEJADA desc) AS venda " & _
      "FROM produtos

Se já está usando uma subquery você não precisa dos joins. Atenção para a parte em vermelho, tem que adequar para os nomes dos campos que você tem. Data_desejada, é o campo que define a data em que você quer se basear para pegar o último(mais recente).

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#481317 - 28/04/2018 11:20:53

WMR2018
BALSAS
Cadast. em:Outubro/2017


Citação:
:
Você está usando uns joins aí desnecessários:

SELECT produtos.ref AS var_Ref, produtos.codigo AS varCodProd, produtos.cod_barra AS var_codbarra, produtos.descricao AS var_desc, " & _
      "produtos.fabricante AS var_fab, produtos.NCM AS var_NCM, produtos.CFOP AS var_CFOP, produtos.unid_medida AS var_med, produtos.quant_estoque AS var_quant, " & _
      "(SELECT TOP 1 Produtos_Precos.VALOR_VV FROM Produtos_Precos Where produtos_precos.Codigo_produto = produtos.codigo order by DATA_DESEJADA desc) AS venda " & _
      "FROM produtos

Se já está usando uma subquery você não precisa dos joins. Atenção para a parte em vermelho, tem que adequar para os nomes dos campos que você tem. Data_desejada, é o campo que define a data em que você quer se basear para pegar o último(mais recente).


Deu certo KERPLUNK, obg



#481318 - 28/04/2018 11:35:37

WMR2018
BALSAS
Cadast. em:Outubro/2017


Citação:
:
Você está usando uns joins aí desnecessários:

SELECT produtos.ref AS var_Ref, produtos.codigo AS varCodProd, produtos.cod_barra AS var_codbarra, produtos.descricao AS var_desc, " & _
      "produtos.fabricante AS var_fab, produtos.NCM AS var_NCM, produtos.CFOP AS var_CFOP, produtos.unid_medida AS var_med, produtos.quant_estoque AS var_quant, " & _
      "(SELECT TOP 1 Produtos_Precos.VALOR_VV FROM Produtos_Precos Where produtos_precos.Codigo_produto = produtos.codigo order by DATA_DESEJADA desc) AS venda " & _
      "FROM produtos

Se já está usando uma subquery você não precisa dos joins. Atenção para a parte em vermelho, tem que adequar para os nomes dos campos que você tem. Data_desejada, é o campo que define a data em que você quer se basear para pegar o último(mais recente).


Deu certo KERPLUNK, obg




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por WMR2018 em 28/04/2018 11:35:50