Ir para conteúdo

POWERED BY:

Arquivado

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

THIAGO MENGALI

Join's - Teste para não retornar...

Recommended Posts

Pessoal,Tenho o seguinte SELECT:SELECT T0.DueDate As 'DataVencto', T0.RefDate As 'DataLancto', 'Atraso' = Case When datediff(day,T0.DueDate,GetDate()) > 0 Then datediff(day,T0.DueDate,GetDate()) Else 0 End, T0.Account As 'Titulo', T3.CardName As 'NomeCliente', T0.Credit As 'TotalDoc', T5.CashSum As 'TotalPago', T1.Number As 'DocEntry', T5.TAXDATEFROM JDT1 T0 INNER JOIN OJDT T1 ON T0.TransId = T1.TransId INNER JOIN OACT T2 ON T0.Account = T2.AcctCode INNER JOIN OCRD T3 ON T0.Shortname = T3.CardCode LEFT JOIN RCT2 T4 INNER JOIN ORCT T5 ON T5.DocNum = T4.DocNum ON T4.DocEntry = T1.NumberWhere T3.Cardtype <> 'S' order by T0.duedatePorém, preciso que este select me retorne apenas o que não existe na tabela ORCT.Tentei colocar um Where ORCT.TaxDAte = Null, porém não me retornou nada...O Que tenho que fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta fazer o RIGHT JOIN, ou então um select com NOT IN nas chaves

Compartilhar este post


Link para o post
Compartilhar em outros sites

Thiago, procure no Books o Line por " NOT IN " em maiusculo.

Lá tem varias exemplos e um deles vai se encaixar no que precisa ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

cOmo assim um select Not In?

Ou utilizar o NOT EXISTS que garante um perfromance melhor.Não é que a sugestão seja incorreta mas dependendo da quantidade e estrutura da tabelas envolvidas o NOT INT ou mesmo IN pode degradar a perfromance.Mas cada caso é um caso e sempre a análise do plano de execução ajuda a definir que a melhor estratégia a ser adotada.Dêm de um pesquisa no book´s on line por EXISTS e NOT EXISTS.t+

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.