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

[Sugestão] Erros na solução

Acredito que hajam erros na resolução proposta do exercício, como a declaração das variáveis dos meses como MONEY ou então a falta do END do WHILE

1 resposta
solução!

Olá Mauricio!

Pelo que você descreveu, parece que você tem razão em suas observações sobre a solução proposta no exercício.

  1. Tipo de Dados para as Variáveis: Utilizar o tipo MONEY para as variáveis que armazenam os valores de vendas mensais faz sentido se você estiver lidando com valores monetários que precisam de precisão decimal. No entanto, se os valores não necessitarem de precisão monetária, poderia ser mais adequado usar um tipo de dados como DECIMAL ou NUMERIC, que permite especificar a precisão e a escala (por exemplo, DECIMAL(10,2)).

  2. Falta do END no WHILE: Em SQL Server, toda estrutura de controle como WHILE deve ser finalizada com um END. Se isso foi omitido na solução do exercício, definitivamente é um erro. Um exemplo correto seria:

    WHILE condição
    BEGIN
        -- Código a ser executado
    END
    

Você pode fazer esses ajustes no código, você pode ajustar o tipo de dados das variáveis, se necessário, e garantir que todas as estruturas de controle estão corretamente delimitadas com BEGIN e END. Aqui está um exemplo de como você poderia modificar o código:

DECLARE @janeiro DECIMAL(10,2), @fevereiro DECIMAL(10,2), @marco DECIMAL(10,2), @abril DECIMAL(10,2), @maio DECIMAL(10,2), @junho DECIMAL(10,2),
        @julho DECIMAL(10,2), @agosto DECIMAL(10,2), @setembro DECIMAL(10,2), @outubro DECIMAL(10,2), @novembro DECIMAL(10,2), @dezembro DECIMAL(10,2)

SET @janeiro = 0
SET @fevereiro = 0
SET @marco = 0
SET @abril = 0
SET @maio = 0
SET @junho = 0
SET @julho = 0
SET @agosto = 0
SET @setembro = 0
SET @outubro = 0
SET @novembro = 0
SET @dezembro = 0

-- Supondo que você tenha um cursor e um loop WHILE
-- Não esqueça de finalizar com END
WHILE condição
BEGIN
    -- Código para processar cada linha
END

Espero que essas sugestões ajudem você a corrigir os problemas encontrados no exercício. Qualquer dúvida manda aqui. Bons estudos.