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 serão geradas duas sentenças sql’s: - A) - Primeira sentença: relacionada a banda pai;
SELECT PFUNC.CODCOLIGADA, PFUNC.CHAPA, PFUNC.SALARIO, PPESSOA.CPF FROM PFUNC LEFT OUTER JOIN PPESSOA (NOLOCK) ON (PFUNC.CODPESSOA = PPESSOA.CODIGO) WHERE PFUNC.CODCOLIGADA = 1 AND PPESSOA.CPF = '0015154515' 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:
SELECT PFDEPEND.CODCOLIGADA, PFDEPENDE.NOME FROM PFDEPEND INNER JOIN PFUNC (NOLOCK) ON (PFUNC.CODCOLIGADA = PFDEPEND.CODCOLIGADA AND PFUNC.CHAPA = PFDEPEND.CHAPA) WHERE PFUNC.CODCOLIGADA = 1 Aviso |
---|
| Perceba que a query acima retornará todos os dependentes de todos os funcionários da Coligada 1. Nesse caso, teremos considerado consumo de memória e performance. |
|