3
respostas

Outra resolução

Fiz dessa outra forma:

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

   SET @CPF = '2600586709';
   SELECT @DATA_NASCIMENTO = [DATA DE NASCIMENTO] FROM [TABELA DE CLIENTES] WHERE CPF = @CPF;
   SET @IDADE = DATEDIFF(YEAR, @DATA_NASCIMENTO, GETDATE());
   SELECT @IDADE_OLD = idade from  [TABELA DE CLIENTES] where CPF = @CPF
   PRINT @IDADE_OLD
   PRINT @idade

   IF  @IDADE_OLD < @IDADE
    BEGIN
        UPDATE [TABELA DE CLIENTES] SET IDADE = @IDADE WHERE CPF = @CPF;
        PRINT 'idade atualizada para ' + CAST(@IDADE AS VARCHAR(10))
    END;
    ELSE
        PRINT 'Idade permaneceu a mesma'
3 respostas

Oii, Arthur! Tudo bem?

Muito bem, parabéns por praticar a atividade indo além!

Continue se empenhando nos estudos e qualquer dúvida, não hesite em recorrer ao fórum.

Bons estudos, Arthur!

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

OUTRA SUGESTÃO:

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

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

IF (SELECT IDADE FROM [TABELA DE CLIENTES] WHERE CPF = @CPF) != @IDADE UPDATE [TABELA DE CLIENTES] SET IDADE = @IDADE WHERE CPF = @CPF; ELSE PRINT 'Não precisa atualizar';

Oii, Emerson! Tudo bem?

Boa sugestão, parabéns! O seu script está bem estruturado e sem erros de sintaxe que podem ocasionar possíveis erros.

Continue assim, a prática ajuda bastante a fixar os conhecimentos. Qualquer dúvida, abra um novo tópico no fórum para podermos te ajudar de forma personalizada!

Bons estudos, Emerson!