Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dieguinhu Web

Contador que elimine consultas repetidas

Recommended Posts

GALERA O SEGUINTE, PEGUEI UM CODIGO AQUI E ELE TA MUITO SINISTRO DE ARRUMAR PODEM ME DAR UMA AJUDA...

 

 

O SEGUINTE O SCRIPT ME FAZ UMA LISTAGEM DE REGISTROS NUM SITE

 

 

ELE CONSULTA OS CLIENTES COM DATA DE ALTERACAO DO COMEÇO PARA O FIM

 

 

 

BEGIN 
DECLARE @TEMP TABLE(	EstabelecimentoId int,
					RazaoSocial varchar(150),
					CNPJ varchar(18),
					[status] varchar(50),
					DataAlteracao datetime)

DECLARE @TEMP2 TABLE(	EstabelecimentoId int,
					RazaoSocial varchar(150),
					CNPJ varchar(18),
					[status] varchar(50),
					DataAlteracao datetime)

DECLARE @qtdtt int, 
       @QtdRegLast int, 
       @sts int, 
       @integrador int , 
       @respvenda int, 
       @Pagina int, 
       @QtdReg int 

SELECT @qtdtt =  [dbo].[fn_CountECbyStatus](@sts, @integrador, @respvenda)
SET @Pagina = 2
SET @sts = 5
SET @QtdReg = 15
SET @respvenda = 1439
SET @integrador = 0

SET @QtdRegLast = @qtdReg
IF (@Pagina*@QtdReg>@qtdtt) SET @QtdRegLast = (@qtdReg-((@Pagina*@QtdReg)-@qtdtt))

BEGIN

INSERT INTO @TEMP (EstabelecimentoId, RazaoSocial, CNPJ, [status],DataAlteracao)
		SELECT DISTINCT TOP (@Pagina* @QtdReg)  
			e.EstabelecimentoId, e.RazaoSocial, e.CNPJ, s.Nome, l.data
		FROM Estabelecimento e left join CredenciaisCheckout cc on cc.estabelecimentoid = e.estabelecimentoid
			left join StatusCliente s on e.statuscliente = s.statusid 
			left join Produtos prod on cc.produtoid = prod.produtoid
			left join Venda v on e.estabelecimentoid = v.estabelecimentoid
			left join (select l1.idalterado, data = max(l1.data), tabela = dbo.trim(l1.tabela), campo = dbo.trim(l1.campo), valor_novo = dbo.trim(l1.valor_novo)
						from [log] l1 where dbo.trim(l1.tabela) = 'Estabelecimento' and dbo.trim(l1.campo) = 'StatusCliente' and (dbo.trim(l1.valor_novo) = cast(@sts as varchar) or l1.data is null)
						group by l1.idalterado, dbo.trim(l1.tabela), dbo.trim(l1.campo), dbo.trim(l1.valor_novo)) as l on l.idalterado = e.estabelecimentoid 
		WHERE e.statuscliente = @sts 
			and prod.exibesite = 1
			and e.integradorid <> 999999 
			and v.responsavelvenda = @respvenda
		ORDER BY l.data DESC

	END



INSERT INTO @TEMP2 (EstabelecimentoId, RazaoSocial, CNPJ, [status],DataAlteracao)
SELECT TOP (@QtdRegLast) * FROM @TEMP order by DataAlteracao asc



INSERT INTO @RESULT (EstabelecimentoId, RazaoSocial, CNPJ, [status],DataAlteracao)
SELECT * from @TEMP2 order by DataAlteracao desc

RETURN
END

 

@PAGINA SETA A PAGINA QUE ESTÁ E @QTDEREG É A QUANTIDADE DE REGISTROS QUE APARECE NA TELA SÓ QUE AI PRIMEIRA CONSULTA SE FOR 1 A PAGINA ELE ME TRAZ 15 REGITSROS, 2 ME TRAZ 30, EU QUERIA O SEGUINTE QUANDO PASSASSE NESSA CONSULTA PELA SEGUNDA VEZ ELE IDENTIFICASSE SE O REGISTRO JA PASSOU NA PRIMEIRA TABELA TEMPORARIA A @TEMP

 

COMO POSSO FAZER ?? PQ ESTA REPETINDO OS REGITROS..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.