declare @DateINi smalldatetime declare @TotSales Numeric(10,2) set @DateINi='20100218' select @dateini=dateadd(hh,(select datepart(hh,getdate())),cast(convert(CHAR(11),@dateini,113) as datetime)) select @dateini=dateadd(mi,(select datepart(mi,getdate())),@dateini) select @dateini=dateadd(ss,(select datepart(ss,getdate())),@dateini) print @dateini select @TotSales=(select sum(valor) from romaneio r where tipo='VC' and caddate>=@dateini) declare SSales cursor for select e.id,max(caddate) as DataBeginSales from historicoproduto h right join estoquefisico e on h.prodid=e.id where ativo=1 and ( tipo IS NULL or tipo<>'Posição' or (tipo='Posição' and (h.historico like 'Colocação em Venda%' or h.historico like '%->Venda%'))) group by e.id DECLARE @tblSales TABLE (ProdID Char(10),Data smalldatetime,Sales Numeric(10,2)) DECLARE @ProdID char(10) DECLARE @MaxSales smalldatetime DECLARE @Sales Numeric(10,2) OPEN SSales --Atribuindo valores do select nas variáveis FETCH NEXT FROM SSales INTO @ProdID, @MaxSales --Iniciando laço WHILE @@FETCH_STATUS = 0 BEGIN SET @Sales=@TotSales IF dbo.udf_TempoDecorridoSegundos(@MaxSales,getdate())<180000 SET @Sales=(select sum(valor) from romaneio r where tipo='VC' and caddate>=@maxSales) INSERT INTO @tblSales values(@ProdID, @MaxSales,@Sales) --Próxima linha do cursor FETCH NEXT FROM SSales INTO @ProdID, @MaxSales END --Fechando e desalocando cursor CLOSE SSales DEALLOCATE SSales select * from @tblSales