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

query infinita

qual o erro nesse código? ele retorna um query sem fim e não imprime os números de notas, apenas sempre a mesma data 2017/01/02. desde já obrigado.

declare @dataInicial date, @dataFinal date, @numero int
set @dataInicial = '20170101'
set @dataFinal = '20170110'
set @numero = (select count(*) from [NOTAS FISCAIS])
while @dataInicial <= @dataFinal
begin
 print @numero
 SELECT DATEADD(DAY, 1, @dataInicial)
end
3 respostas

Bom dia!

Tente jogar o

set @numero = (select count(*) from [NOTAS FISCAIS])

para dentro do while.

Bons estudos!

solução!

Oiiii Giuliano, tudo bom?

Vamos lá, eu não recomendo fazer o select ali na variável @numero. Seria bom deixamos dentro do while, porque se deixar ali a contagem das notas não irá ser feita. E está retornando a mesma data, pois no select abaixo, você não utilizou o retorno para a variável @dataInicial.

SELECT DATEADD(DAY, 1, @dataInicial)

Sugiro que faça assim, dê uma observada e compare com o seu código:

declare @dataInicial date, @dataFinal date, @numero int

set @dataInicial = '20170101'
set @dataFinal = '20170110'


while @dataInicial <= @dataFinal

begin
 select @numero = count(*) from [NOTAS FISCAIS] where data = @dataInicial
print @numero
 select @dataInicial = DATEADD(DAY, 1, @dataInicial)
end;

Qualquer coisa você me fala, tá bom?

Vdd, agora eu entendi. Muito obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software