Quando o relatório é executado, o mecanismo de execução vai gerar duas sentenças sql’s dinamicamente baseadas nas configurações das bandas e controles. Nesse exemplo caso serão geradas duas sentenças sql’s: A) - sql. Primeira sentença: relacionada Relacionada a banda pai; SELECT PFUNC.CODCOLIGADA, PFUNC.CHAPA, PFUNC.SALARIO, PPESSOA ABATFUN. CPFDATA FROM PFUNC LEFT OUTER JOIN PPESSOA ABATFUN (NOLOCK) ON ( PFUNC.CODPESSOA = PPESSOA.CODIGOPFUNC.CODCOLIGADA = ABATFUN.CODCOLIGADA AND PFUNC.CHAPA = ABATFUN.CHAPA) WHERE PFUNC.CODCOLIGADA = 1 AND PPESSOA.CPF = '0015154515' ABATFUN.DATA < :DATAATUAL Aviso |
---|
| Na sentença acima, o mecanismo adiciona uma clausula (Left Outer Join) para tabela PPESSOA. Isso ocorre devido ao controle "CPF" existente na banda pai pois o mesmo não existe na tabela principal da banda "PFUNC". | B) - Segunda sentença: relacionada a banda filha: Nada muda em relação à query que será executada depois da melhoria. |
Segunda sentença: Relacionada a banda filha; SELECT PFDEPEND.CODCOLIGADA,
PFDEPENDE PFDEPENDE.NOME FROM PFDEPEND INNER JOIN PFUNC (NOLOCK) ON (PFUNC.CODCOLIGADA = PFDEPEND.CODCOLIGADA AND PFUNC.CHAPA = PFDEPEND.CHAPA) LEFT OUTER JOIN ABATFUN (NOLOCK) ON (PFUNC.CODCOLIGADA = ABATFUN.CODCOLIGADA AND PFUNC.CHAPA = ABATFUN.CHAPA) WHERE PFUNC.CODCOLIGADA = 1
Aviso |
---|
|