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

Minha resolução

IF OBJECT_ID('TB_NOTAS', 'U') IS NOT NULL 
    DROP TABLE TB_NOTAS;

CREATE TABLE TB_NOTAS (
    DIA	DATE,
    QTD_NOTAS INT
);

DECLARE @DATA_INICIAL DATE;
DECLARE @DATA_FINAL DATE;

SET @DATA_INICIAL = '2017-01-01';
SET @DATA_FINAL = '2017-01-10';

IF @DATA_INICIAL <= @DATA_FINAL
BEGIN
    WHILE @DATA_INICIAL <= @DATA_FINAL
    BEGIN
        DECLARE @QTD_NOTAS INT;

        SET @QTD_NOTAS = (SELECT COUNT(*) FROM [NOTAS FISCAIS] WHERE [DATA] = @DATA_INICIAL);

        INSERT INTO TB_NOTAS
        VALUES
        (@DATA_INICIAL, @QTD_NOTAS);

        SET @DATA_INICIAL = DATEADD(DAY, 1, @DATA_INICIAL);
    END;

    SELECT * FROM TB_NOTAS;
END;
ELSE
    PRINT 'DATAS NÃO COMPATIVEIS';

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Oi, Ycaro! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Uma dica útil para o futuro é aplicar a função ISNULL para garantir que, caso não haja notas em algum dia, o valor inserido seja zero em vez de NULL. Por exemplo:


SET @QTD_NOTAS = ISNULL((SELECT COUNT(*) FROM [NOTAS FISCAIS] WHERE [DATA] = @DATA_INICIAL), 0);

Isso ajuda a manter sua tabela com valores consistentes, evitando problemas em consultas ou cálculos.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!