Contador que elimine consultas repetidas
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
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..
Discussão (1)
Carregando comentários...