Olá pessoal,
Tenho um relatório com o sql abaxo, porém ele é muito pesado e quando mando gerar esse relatório pelo sistema, ele não gera.
A minha estratégia para resolver esse problema é criar uma função com os seguintes passos:
1º passo: Criar uma tabela temporária (tabelaTemporaria) cujas colunas correspondem aos campos do SELECT do sql abaixo;
2º passo: Dá um INSERT nessa tabela temporária com os dados colhidos pelo sql abaixo;
3º passo: O sql do relatório muda para SELECT * FROM tabelaTemporaria;
4º passo: Zerar a tabela temporaria.
A pergunta é: como faço essa função??? rsrs
SELECT
solicitacao."soli_pk_id" AS solicitacao_soli_pk_id,
solicitacao."soli_data_solicitacao" AS solicitacao_soli_data_solicitacao,
servicosdimat."smat_nome" AS servicosdimat_smat_nome,
servicosdimat."smat_preco" AS servicosdimat_smat_preco,
servicosdimee."smee_nome" AS servicosdimee_smee_nome,
servicosdimee."smee_preco" AS servicosdimee_smee_preco,
servicosditalq."salq_nome" AS servicosditalq_salq_nome,
servicosditalq."salq_preco" AS servicosditalq_salq_preco,
servicosnit."snit_servico" AS servicosnit_snit_servico,
servicosnit."snit_preco" AS servicosnit_snit_preco,
funcionario."func_nome" AS funcionario_func_nome,
laboratorio."labo_nome" AS laboratorio_labo_nome,
divisoes."divi_nome" AS divisoes_divi_nome,
clientefisica."clfi_nome" AS clientefisica_clfi_nome,
clientefisica."clfi_fone" AS clientefisica_clfi_fone
FROM
sigi.clientefisica,
sigi.solicitacao,
sigi.servicosdimat,
sigi.servicosdimee,
sigi.servicosditalq,
sigi.servicosnit,
sigi.funcionario,
sigi.divisoes,
sigi.laboratorio,
sigi.intermediaria
WHERE
( solicitacao.soli_fk_divisoes1_id = divisoes.divi_pk_id OR
solicitacao.soli_fk_divisoes2_id = divisoes.divi_pk_id OR
solicitacao.soli_fk_divisoes3_id = divisoes.divi_pk_id OR
solicitacao.soli_fk_divisoes4_id = divisoes.divi_pk_id OR
solicitacao.soli_fk_divisoes5_id = divisoes.divi_pk_id ) AND
solicitacao.soli_fk_funcionario_cadastrou_id = funcionario.func_pk_id AND
solicitacao.soli_fk_cliente_fisica_id = clientefisica.clfi_pk_id AND
( servicosdimat.smat_fk_laboratorio_id = laboratorio.labo_pk_id OR
servicosdimee.smee_fk_laboratorio_id = laboratorio.labo_pk_id OR
servicosditalq.salq_fk_laboratorio_id = laboratorio.labo_pk_id OR
servicosnit.snit_fk_laboratorio_id = laboratorio.labo_pk_id ) AND
intermediaria.inte_codigo_solicitacao = solicitacao.soli_pk_id AND
( intermediaria.inte_fk_servico_dimat_id = servicosdimat.smat_pk_id OR
intermediaria.inte_fk_servico_dimee_id = servicosdimee.smee_pk_id OR
intermediaria.inte_fk_servico_ditalq_id = servicosditalq.salq_pk_id OR
intermediaria.inte_fk_servico_nit_id = servicosnit.snit_pk_id);