bertani 0 Denunciar post Postado Junho 5, 2012 Pessoa, bom dia! Estou precisando de uma ajuda no select abaixo. Quando coloco o distinct da erro, ele fica executando ate informar uma mensagem de tempo. Assim, como devo ou se posso usar o distinct no select que fiz. Eu não tenho muito o jeito com o Oracle, assim, gostaria de uma ajuda. Obrigado Select RPA.RPA_NUM, RPA.CID_COD, RPA.CID_CID_COD, RPA.COD_TAB_FRETE, RPA.STF_COD, RPA.TF_COD, RPA.RPA_VLR_FRETE_PG, RPA.RPA_OBS, RPA.RPA_CTF, RPA.RPA_ENTREGAS, RPA.RPA_GERENC_RISCO, RPA.RPA_CATEGORIA, RPA.DT_ENVIO, RPA.RPA_HR_EMISSAO, RPA_AUTORIZACAO.AR_SEQ, RPA_COMPOSICAO.rc_seq, DUP_CEDENTE.CDE_COD, DUP_CEDENTE.DC_COD, DUP_CEDENTE.mda_cod, DUP_CEDENTE.stf_cod, DUP_CEDENTE.pcac_cod, DUP_CEDENTE.forma_rec_cod, DUP_CEDENTE.dupc_nro_dup, DUP_CEDENTE.DUPC_DOC_FAV, DUP_CEDENTE.dupc_vl_total, DUP_CEDENTE.dupc_dt_pag, DUP_CEDENTE.dupc_transf, DUP_CEDENTE.dupc_doc_repom, a.COD_CARRETA as a_carreta, a.VEI_PLACA as a_placa, a.VEI_CATEGORIA as a_categoria, a.VEI_FROTA as a_frota, b.COD_CARRETA as b_carreta, b.VEI_PLACA as b_placa, b.VEI_CATEGORIA as b_categoria, b.VEI_FROTA as b_frota, TABELA_FRETE.TF_TIPO_VEIC, CONTA.COD_REM, CONTA.PCA_REM, CONTA.BCO_COD, CONTA.AGE_COD, CONTA.MDA_COD, CONTA.TPC_COD, CONTA.TC_COD, CONTA.CTB_COD, CONTA.CTB_CORRENTE, CONTA.CTB_NUM, MOTOR.CG_NOME as motor_nome, MOTORI.CGP_END as motori_end, MOTORI.CGP_NUM as motori_num, MOTORI.CGP_CEP as motori_cep, MOTORI.CGP_COMP as motori_comp, MOTORI.CGP_BAIRRO as motori_bairro, PROP.CG_NOME as prop_nome, PROPR.CGP_END as propr_end, PROPR.CGP_NUM as propr_num, PROPR.CGP_CEP as propr_cep, PROPR.CGP_COMP as propr_comp, PROPR.CGP_BAIRRO as propr_bairro, DOC_CEDENTE.DC_COD, DOC_CEDENTE.DC_SERIE, DOC_CEDENTE.DC_TIPO, DOC_CEDENTE.DC_VL_TOT, DOC_CEDENTE.DC_OBS, DOC_CEDENTE.REM_NUM, DOC_CEDENTE.dc_prov, CONTATO.CTO_COD, CONTATO.CTO_TEL, CONTATO.CTO_EMAIL, CARGA.TP_VEI, CARGA.CAR_PES_REAL, CARGA.CAR_QTD_LACRE, PERCURSO_RPA.PER_RPA_SEQ, PERCURSO_RPA.ATV_COD, PERCURSO_RPA.NF_NUM_NF, PERCURSO_RPA.PCA_COD, PERCURSO_RPA.ORG_COD, PRACA.PCA_END, PRACA.PCA_CEP, praca.pca_bai, PRACA.pca_end_cob, PRACA.pca_cep_cob, PRACA.pca_bai_cob, PRACA.pca_end_fiscal, PRACA_CEDENTE.PCAC_COD, dest.cod_ibge as dest_ibge, orig.cod_ibge as orig_ibge From RPA Inner Join DOC_CEDENTE On DOC_CEDENTE.rpa_num = RPA.RPA_NUM Inner Join DUP_CEDENTE On DUP_CEDENTE.FIL_COD = DOC_CEDENTE.FIL_COD And DUP_CEDENTE.CDE_COD = DOC_CEDENTE.CDE_COD And DUP_CEDENTE.PCAC_COD = DOC_CEDENTE.PCAC_COD And DUP_CEDENTE.DC_COD = DOC_CEDENTE.DC_COD Inner Join RPA_AUTORIZACAO ON RPA_AUTORIZACAO.RPA_NUM = RPA.RPA_NUM Inner Join RPA_COMPOSICAO On RPA_COMPOSICAO.RPA_NUM = RPA.RPA_NUM Inner Join PRACA_CEDENTE On PRACA_CEDENTE.CDE_COD = DOC_CEDENTE.CDE_COD And PRACA_CEDENTE.FIL_COD = DOC_CEDENTE.FIL_COD And PRACA_CEDENTE.PCAC_COD = DOC_CEDENTE.PCAC_COD Inner Join CONTA On CONTA.CTB_COD = DUP_CEDENTE.FIL_COD Inner Join PERCURSO_RPA on PERCURSO_RPA.RPA_NUM = RPA.RPA_NUM INNER JOIN VEICULO a on a.loc_cod = rpa.vei_fil_cod AND a.VEI_COD = rpa.vei_cod INNER JOIN VEICULO b ON b.loc_cod = rpa.vei2_fil_cod AND b.VEI_COD = rpa.vei_vei_cod inner JOIN TABELA_FRETE ON TABELA_FRETE.tf_cod = RPA.tf_cod INNER JOIN CIDADE dest ON dest.CID_COD = RPA.cid_cid_cod INNER JOIN CIDADE orig ON orig.CID_COD = RPA.cid_cod iNNER JOIN PRACA ON PRACA.fil_cod = dup_cedente.pra_fil_cod INNER JOIN CARGA ON CARGA.fil_car = RPA.fil_cod INNER JOIN CONTATO ON CONTATO.fil_cod = PRACA.fil_cod inner JOIN CADASTRO_GERAL MOTOR ON MOTOR.CG_COD = RPA.cg_mot AND MOTOR.LOC_COD = RPA.loc_mot inner JOIN CADASTRO_GERAL PROP ON PROP.CG_COD = RPA.cg_prop AND PROP.LOC_COD = RPa.loc_prop INNER JOIN CG_PRACA PROPR ON PROPR.CG_COD = RPA.cg_prop AND PROPR.LOC_COD = RPA.loc_prop INNER JOIN CG_PRACA MOTORI ON MOTORI.CG_COD = RPA.cg_mot AND MOTORI.LOC_COD = RPA.loc_mot Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 5, 2012 Verifique : Se todos os campos de joins foram informados Se estes campos tem índices para otimizar a consulta Não tem nenhuma condição restritiva ? Se quer trazer TODOS OS DADOS realmente ? ---------------- São 19 joins o que torna a SQL complexa O DISTINCT só faz evitar os dados duplicados que neste caso não sei se vai ocorrer. Compartilhar este post Link para o post Compartilhar em outros sites