Ir para conteúdo
Fórum Script Brasil
  • 0

Desafio, Registro não coincidentes


resagree

Pergunta

Tenho uma tabela com chave primaria composta pelo numero de contrato e data de vencimento (ContratoCompleto e dtVencimento)

são duas tabelas com contratos em atraso de ontem e de hoje, os que pagaram não estao em atraso hoje portanto não tem os dados na tabela e preciso encontra-los. Os contratos repetem só mudando a data de vencimento se a pessoa tiver mais de 2 em atraso

Eu consegui e nos meus testes deu certo para ate 1000 registros, quando eu coloquei todos os dados a consulta não terminava nunca com mais de 3 horas de execução:

SELECT *

FROM [sELECT b.*, b.ContratoCompleto + STRCONV( b.dtVencimento, 3) as chave

FROM tblSiapiAnterior AS b]. AS b

WHERE b.chave not in

(SELECT a.ContratoCompleto + STRCONV( a.dtVencimento, 3) as chave

FROM tblSiapi AS a);

Gostaria de saber se existe um metodo mais otimizado pois o meu está impraticavel.

Obrigado pela atenção

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ta meio confuso, não sei a necessidade de duas tabela, quem sabe se você criar uma tabela

Status [cod, Desc]

0, Pendente

1, Pago

2, Pago com Atraso

3, Atrasado

4, Cancelado

daí faz uma única tabela com vencimentos e coloca campo status e dá um JOIN da sua TblSiapi com a Status (Só pra montar relatório com a descrição do Status ao invéz do código dele), daí coloca pra buscar registros onde o status é igual a 2 ou 3 e data está entre ontem e hoje, pode usar essa função aqui pra pegar o dia:

Public Function getDia(dias As Integer) As Date
    Dim retorno As Date
    retorno = Now - dias
    getDia = Format(retorno, "dd/mm/yyyy")
End Function
E busca assim
SELECT TS.* FROM TblSiapi AS TS WHERE (TS.Status = 2 OR TS.Status = 3) AND TS.dtPagamento BETWEEN getDia(1) AND getDia(0)
Lembrando que SELECT * só quando for buscar realmente tudo da tabela, se não busque só o que precisa mas em todo caso, tenta isso:
SELECT * FROM TblSiapiAnterior 
UNION
SELECT * FROM TblSiapi

Essa SQL junta os arquivos DISTINTOS das duas tabelas

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...