Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

NÃO ENTENDI O IF

NÃO ENTENDI A PARTE QUE FALA ' IF @CONTADOR_NOTAS > 0 ' NÃO ENTENDI ESSA ESSA PARTE. JÁ ASSISTI VÁRIAS VEZES MAS NÂO ENTRA NA MINHA CABEÇA. SE ALGUÉM PUDER TENTAR ME DAR UMA LUZ, EU AGRADEÇO.

5 respostas

Boa tarde Arthur,

IF e ELSE é controle condicional de fluxo básico usado para testar condições quando um comando T-SQL é executado.

O IF e ELSE funcionam similarmente aos comandos de mesmo nome usados em linguagens como C# por exemplo, para testar condições de execução de comandos.

Impõe condições na execução de uma instrução T-SQL. A instrução que segue uma palavra-chave IF sua condição será executada se a condição for satisfeita: a expressão Booleana retorna TRUE.

A palavra-chave opcional ELSE introduz outra instrução que será executada quando a condição IF não for satisfeita: a expressão Booleana retorna FALSE.

Quando uma variável é declarada, seu valor primeiramente é definido como NULL. Para atribuir um valor à uma variável, use a instrução SET. Este é o método preferido de atribuir um valor a uma variável. Uma variável também pode ter um valor atribuído com uma instrução SELECT, depende da necessidade de cada desenvolvedor.

Exemplo:

-- Declaração da variável
DECLARE @Idade INT;

-- Atribuição do valor a variável
SET @Idade = 23;

-- Se... for menor que 18 anos
IF @Idade < 18
PRINT 'Menor que 18 anos';

-- Se não ...
ELSE
IF @Idade >18
PRINT 'Maior que 18 anos';

Espero ter ajudado!!!

Boa tarde, Obrigado. Mas minha dúvida é sobre essa condição ' @CONTADOR_NOTAS > 0 '. Não entendi o por que desse ' 0 ' e nem o por que essa condição. Se puder tentar me esclarecer melhor, Agradeço de verdade :)

Arthur pode me mandar o print sobre essa dúvida?

Ficaria melhor pra mim entender o caso específico.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Vamos lá Arthur:

Declaração de Variáveis:


SET @LIMITE_MINIMO = 98
SET @LIMITE_MAXIMO = 102

WHILE @LIMITE_MINIMO <= @LIMITE_MAXIMO

Temos as duas variáveis declaradas por números inteiros, e uma expressão de comparação(WHILE), indicando que o @LIMITE_MINIMO não pode ser maior que o @LIMITE_MAXIMO.

Funcionalidade da Variável @CONTADOR NOTAS:

SELECT 
        @CONTADOR NOTAS = COUNT( * ) 
        FROM [NOTAS FISCAIS] 
        WHERE [NUMERO] = @LIMITE_MINIMO

Aqui temos um select para declarar um valor a partir de um IF entre variáveis declaradas. Variável @LIMITE_MINIMO recebe o valor de 98. Variável @CONTADOR NOTAS recebe a quantidade de quantos itens dentro de "[NOTAS FISCAIS]", possui um valor igual @LIMITE_MINIMO.

Funcionalidade do IF dentro da variável @CONTADOR NOTAS:

IF @CONTADOR NOTAS > 0
        BEGIN
                INSERT INTO @TABELA_NUMEROS ([NUMERO], [STATUS], [FATURAMENTO])
                              VALUES (@LIMITE_MINIMO, 'É nota fiscal', [dbo].[FaturamentoNota] (@LIMITE_MINIMO))
                END

Aqui temos um se(IF) @CONTADOR NOTAS for maior que 0, será realizado a inserção dos valores para a tabela conforme segue código a partir de "INSERT INTO".

A segunda parte do IF, ELSE:

ELSE
        BEGIN
                INSERT INTO @TABELA_NUMEROS ([NUMERO], [STATUS], [FATURAMENTO])
                              VALUES (@LIMITE_MINIMO, 'Não é nota fiscal', 0)
                END

Caso o se(IF) não for verdadeiro - nesse caso se o @CONTADOR NOTAS for igual a 0 -, será inserido na tabela os valores na tabela da condição falsa(ELSE) a partir do código "INSERT INTO".

Atribuição de contagem:


SET @LIMITE_MINIMO = @LIMITE_MINIMO + 1

Após ser realizado todo o processo do IF, será agregado um contador, que a cada looping para verificar os valores a partir de @LIMITE_MINIMO até chegar na condição de @LIMITE_MINIMO não poder ser maior que @LIMITE_MAXIMO será atribuído +1 no @LIMITE_MINIMO, de 98 para 99. Repetindo o processo denovo.