Não testei, apenas imagino que seja mais rápido.
Tenho lá na transação a configuração do que se trata: VENDA,COMPRA,etc. mas sem lugar definido, pode ser em qualquer posição
Comecei usando assim: transação com o texto, direto no pedido
SELECT IDPEDIDO FROM JPPEDIDO
LEFT JOIN JPTRANSA ON JPTRANSA.IDTRANSA = JPPEDIDO.PDTRANSA
WHERE JPTRANSA.TRREACAO LIKE '%VENDA%'
Mas pensando bem.... porque não já trazer todos os códigos de transação referente a venda?
SELECT IDPEDIDO FROM PEDIDO
WHERE PDTRANSA IN ( SELECT IDTRANSA FROM JPTRANSA WHERE TRREACAO LIKE '%VENDA%'" )
Qual a diferença?
No primeiro caso, eu tenho que pesquisar cada transação, pra saber se é o que eu quero.
No segundo caso, eu pego uma lista de todas que quero, e apenas vejo se o código nos pedidos está na lista.
ACHO que o segundo é mais rápido, já que pesquisa transações uma única vez.
Na prática nem sei a diferença, porque o servidor agiliza muita coisa.
Talvez possa fazer diferença conforme o tipo de banco de dados.
Por enquanto fica aà como uma possibilidade, a mesma coisa de dois jeitos diferentes.
Notas:
- É parecido com o que usei pra selecionar CNPJ matriz/filial.
- Os dois funcionam
- Criar uma lista pelo Harbour.... nem precisa, o próprio comando já pode fazer isso