none
WHILE em SQL RRS feed

  • Pergunta

  • Boa tarde, mais um probleminha.

    Código:

    SET @quantidade = (SELECT COUNT(area_id) FROM areas);
    SET @contador = 1;
    
    WHILE (@contador <= @quantidade )
    
        BEGIN
    
           SET @menor_salario = (SELECT MIN(prof_salario) FROM professores WHERE area_id = @contador);
    
           UPDATE professores
           SET prof_salario = prof_salario + 100.00
           WHERE prof_salario = @menor_salario;
    
           SET @contador = @contador + 1
    
        END

    O que está errado para dar erro logo no WHILE? Preciso de um laço para pegar os salários de diferentes áreas.
    Obrigado desde já.

    Obs1:

    *O WHILE fica com a seguinte descrição: syntax error, unexpected WHILE_SYM

    *E o END com esta descrição: syntax error, unexpected END, expecting END_OF_INPUT or ';'






    sexta-feira, 15 de maio de 2015 15:46

Respostas

  • declare @quantidade int, @contador int
    SET @quantidade = (SELECT COUNT(area_id) FROM areas);
    SET @contador = 1;
    
    WHILE (@contador <= @quantidade )
    
        BEGIN
    
           declare @menor_salario decimal(18,2)
           SET @menor_salario = (SELECT MIN(prof_salario) FROM professores WHERE area_id = @contador);
    
           UPDATE professores
           SET prof_salario = prof_salario + 100.00
           WHERE prof_salario = @menor_salario;
           SET @contador = @contador + 1
    END

    Cara ve se desse jeito funciona. Você não estava declarando as variáveis.

    sexta-feira, 15 de maio de 2015 16:25

Todas as Respostas