UPDATE COM SELECT USANDO MAX

WMR2018 21/02/2024 20:44:54
#503093
Alterado em 21/02/2024 20:45:13 Boa noite pessoal

Possuo uma tabela de itens de minha venda (pedidos_itens)....
Digamos que eu tenha uma venda com 5 itens (5 registros)...

Tenho uma variavel do tipo Currency que tem armazenado nela "0,01"

Preciso selecionar todos os registros da venda com cod_pedido xxxx, escolher o ultimo desses 5 registros ("max(codigo)" e somar no campo "Desconto" o conteúdo da variável... atualizando somente o ultimo registo dos 5 selecionado no select...

Segue o exemplo:
Dim vDescItens As Currency
vDescItens = "0,01"
SELECT MAX(CODIGO) FROM pedidos_itens WHERE (cod_pedido = 3525)
UPDATE pedidos_itens SET desconto = (desconto + "vDescItens" ) where (cod_pedido = 3525)


Seria mais ou menos assim a ideia, MAIS NÃO ESTOU CONSEGUINDO FAZER ISSO NUMA MESMA CONSULTA/UPDATE.

Resumindo: Somar a variavel com o campo "desconto" do ultimo registo de um grupo filtrado no select.

Quem puder me ajudar, ficarei grato!
KERPLUNK 22/02/2024 17:05:24
#503097
Resposta escolhida
Acho que com uma subquery pode resolver:

UPDATE pedidos_itens
SET Desconto = Desconto + @valor
WHERE codigo = (
SELECT MAX(codigo)
FROM pedidos_itens
WHERE cod_pedido = 'xxxx'
);
WMR2018 24/02/2024 10:27:51
#503101
KERPLUNK obg...

Deu 100% certo!
Tópico encerrado , respostas não são mais permitidas