[firebase-br] RES: RES: SQL Join com três tabelas

Levy Moreira levymoreira.ce em gmail.com
Seg Set 13 13:37:00 -03 2010


O select completo é esse:

Select PRO.CDPRO, LAN.GRADE, L.QUANT as QNTULTCOM, PRO.CDGRD, PRO.NMPRO,
PRO.CDUND,
 PROC.SALDO, PRO.PONTO, PRO.QTMAX, PRO.LOCAL,
sum(lan.quant * pro.vldia) vlcompras,
Sum(LAN.VALOR * LAN.QUANT * (1 - (FAT.VALDE / FAT.VALNO))) VALOR,
Sum(LAN.QUANT) QUANT,
 Sum(LAN.QUANT * PRO.QTMAX) PESOBRUTO, MAX(FAT.DTEMI) ULTVENDA,
Sum(LAN.QUANT *
 LAN.PRECU) VLPRECU
>From IN01LAN LAN  Left Join IN01PRO PRO on PRO.CDPRO = LAN.CDPRO     Left
Join IN01FAT FAT on
FAT.FATUR = LAN.NOTFI     Left Join IN01CLI CLI on CLI.CDCLI =
FAT.CDCLI      Left join IN01LAN L   on
 L.CDPRO   = LAN.CDPRO,     SP_GETSALDOGRADE(PRO.CDPRO, LAN.GRADE) PROC
Where (FAT.VALNO > 0)
and l.notfi = (select first 1 la.notfi from in01lan la where not la.cdfrn is
null and la.cdpro = lan.cdpro order
by la.dtemi desc)
and (lan.venda in ('V','P')) and (lan.dtpro >= '10.09.2010') and (lan.dtpro
<= '10.09.2010')
Group by PRO.CDPRO, LAN.GRADE, L.QUANT, PRO.CDGRD, PRO.NMPRO, PRO.CDUND,
SALDO, PRO.PONTO, PRO.QTMAX, PRO.LOCAL
order by pro.nmpro

se eu comentar esta linha percebi que fica rapido
and l.notfi = (select first 1 la.notfi from in01lan la where not la.cdfrn is
null and la.cdpro = lan.cdpro order
by la.dtemi desc)


e agora?



Mais detalhes sobre a lista de discussão lista