UPDATE COM WHERE DE VARIOR REGISTROS SQL SERVER

JCM0867 24/03/2023 12:12:25
#501206
Olá pessoal, estou com seguinte questão

Tenho a seguinte Query:
Campo1 = Int
Campo2 = Date
Campo3 = String

As talela1 e Tabela2 são identicas, se der para fazer tudo na tabela 1 resolve tb até fica melhor, não precisa duplicar as tabelas..

Update Tabela1
Set Campo3 = "R"
[txt-color=#e80000]Where Campo1 = (Select b.Campo1, Max(b.campo2) as UltimaData From Tabela2 b Where... Group By b.Campo1)[/txt-color]

A idéia é colocar "R" nos Campo3 que possuam a Maior Data em cada Grupo. Os registros que receberão o "R" pode ser de 0 a uma centena.
Problemas em vermelho que não sei como fazer: nao aceita multiplos registros no Select e no select tem dois Campos por causa do Group.

Exempo
Campo1 Campo2 Campo3
959 2023-03-17 G
959 2023-03-18 G
959 2023-03-19 G
970 2023-03-15 G
970 2023-03-17 G

Resultado após o update. Note os resgistros em Vermelho receberam "R":
Campo1 Campo2 Campo3
959 2023-03-17 G
959 2023-03-18 G
[txt-color=#e80000]959 2023-03-19 R[/txt-color]
970 2023-03-15 G
[txt-color=#e80000]970 2023-03-17 R[/txt-color]

Como Posso resolver está questão em uma só query, tem como?

Grato

KERPLUNK 24/03/2023 16:16:40
#501207
Aqui, fiz um fiddle pra fazer isso, mas já advirto, ficou complexo...
DS2T 24/03/2023 21:50:42
#501209
Resposta escolhida
Boa noite.
Fiz uma versão utilizando um update apenas.
Observação: Caso existam duas ou mais maiores datas para o mesmo grupo, ambas serão atualizadas.


DECLARE @ExemploTabela AS TABLE
(
campo1 int,
campo2 date,
campo3 char(1)
)

INSERT INTO @ExemploTabela (campo1, campo2, campo3) VALUES
(959, "2023-03-17", "G"), (959, "2023-03-18", "G"), (959, "2023-03-19", "G"),
(970, "2023-03-15", "G"), (970, "2023-03-17", "G")


UPDATE
t1
SET
campo3 = "R"
FROM
@ExemploTabela t1 INNER JOIN
(SELECT campo1, MAX(campo2) campo2 FROM @ExemploTabela GROUP BY campo1) t2 ON t1.campo1 = t2.campo1 and t1.campo2 = t2.campo2



SELECT * FROM @ExemploTabela -- mostrando registros atualizados
JCM0867 25/03/2023 19:41:57
#501211
DS2T, dá hora, perfeito.
Tu é bom nisso hen?
Agradeço o Keplunk tb que funciou muito bem. Só um pouco mais extenso.

Obrigado.
Tópico encerrado , respostas não são mais permitidas