Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Não Seria mais simples?

Não seria mais simples ver apenas se a idade estiver diferente ao invés de fazer o count em cima da idade?

DECLARE @CPF VARCHAR(15);
DECLARE @DATA_NASCIMENTO DATE;
DECLARE @IDADE INT;


SET @CPF = '5648641702';
SELECT @DATA_NASCIMENTO = [DATA DE NASCIMENTO] FROM [TABELA DE CLIENTES] WHERE CPF = @CPF;
SET @IDADE = DATEDIFF(YEAR, @DATA_NASCIMENTO, GETDATE());

IF @IDADE <> (SELECT IDADE FROM [TABELA DE CLIENTES] WHERE CPF = @CPF) --acredito que simplificaria mais
BEGIN
UPDATE [TABELA DE CLIENTES] SET IDADE = @IDADE WHERE CPF = @CPF
PRINT 'IDADE ALTERTADA'
END;
ELSE 
PRINT 'IDADE CORRETA'
1 resposta
solução!

Oi, Luciano! Tudo bem contigo?

Desculpe pela demora em te responder.

Você está correto em sua observação! A sua sugestão de verificar diretamente se a idade é diferente é uma maneira mais simples e direta de realizar essa tarefa. O objetivo do exercício é praticar o uso do SELECT dentro do IF e a sua ideia continua trazendo essa abordagem, apenas de uma forma diferente (e válida).

No entanto, quando utilizamos o COUNT(*) e identificamos se o valor obtido é igual a 1, desenvolvemos uma estrutura que também lida com a possibilidade do CPF estar presente ou não em nossa tabela. Caso ele não esteja, a alteração da idade não acontecerá, visto que o retorno obtido será 0 e não 1.

Caso tenha interesse em explorar as possibilidades do COUNT, deixo como dica de leitura o artigo abaixo:

Espero ter ajudado, Luciano! Continue com essa dedicação durante os seus estudos. Caso novas dúvidas surjam, estarei por aqui.

Um abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!