problema com query

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Qui, 28 Jul 2005 2:58 pm

Boa tarde Galera!!

Eu tenho a query abaixo e o seguinte problema:
Estou com proble na amarração da query esta retornando linha duplicadas e eu não acho o problema. alguém pode me ajudar ?
A query é essa.
Código: Selecionar todos
select ri.operation_id         "Nº Rec"
      ,ri.invoice_num          "Nota Fiscal"
      ,ri.creation_date        "Emissão"
      ,ri.series               "Serie"
      ,ril.icms_amount         "Valor do ICMS"
      ,ril.ipi_base_amount     "Valor do IPI"
      ,reo.creation_date       "Dt Rec"
      ,reo.status              "Status Nota"
      ,pv.vendor_name          "Fornecedor"
      ,at.name                 "Condição de Pagto"
      ,pha.segment1            "Numero OC"
      ,msib.segment1           "Cod Item"
      ,msit.description        "Descrição"
      ,rfo.cfo_code            "CFO"
      ,ril.uom                 "UN Medida"
      ,ril.quantity            "Qtde"
      ,ril.unit_price          "Preço UN"
      ,ril.total_amount        "Total Nota"
      ,ril.icms_tax            "Alicota ICMS"
from  apps.rec_invoices            ri
      ,apps.rec_invoice_lines       ril
      ,apps.rec_entry_operations    reo
      ,apps.po_vendors              pv
      ,apps.ap_terms                at
      ,apps.rec_fiscal_entities_all rfea
      ,apps.po_vendor_sites_all     pvsa
      ,apps.po_headers_all          pha
      ,apps.po_lines_all            pla
      ,apps.po_line_locations_all   plla
      ,apps.mtl_system_items_b      msib
      ,apps.mtl_system_items_tl     msit
      ,apps.rec_fiscal_operations   rfo
where ri.invoice_id         = ril.invoice_id
  and ri.organization_id    = reo.organization_id
  and ri.operation_id       = reo.operation_id
  and ri.entity_id          = rfea.entity_id
  and ri.terms_id           = at.term_id
  and pvsa.vendor_site_id   = rfea.vendor_site_id
  and pvsa.vendor_id        = pv.vendor_id
  and plla.line_location_id = ril.line_location_id
  and plla.po_header_id     = pha.po_header_id
  and pha.po_header_id      = pla.po_header_id
--  and ri.operation_id       = 100000
--  and ri.organization_id    = 56
  and msib.inventory_item_id = ril.item_id
  and msib.organization_id   = ri.organization_id
  and msit.organization_id   = msib.organization_id
  and msit.inventory_item_id = msib.inventory_item_id
  and msit.language          = 'PTB'
  and rfo.cfo_id             = ril.cfo_id
  and ri.creation_date between to_date('01/01/2005','dd/mm/yyyy')
  and                          to_date('10/01/2005','dd/mm/yyyy')
order by ri.operation_id;

:shock:
Smeagoll
Localização: sp

°v°
/(_)\ Cristiano Carlos - Suporte - TI
^ ^ SOFTWARE LIVRE
"Socialmente justo, economicamente viável e tecnologicamente
sustentável"

Mensagemem Qui, 28 Jul 2005 3:26 pm

É impossível te dizer onde está o problema, pois nós não sabemos a estrutura das tabelas.

Precisamos saber os relacionamentos existentes em CADA tabela envolvida ( Chave-Primária). O que pode estar acontecendo é o esquecimento de algum JOIN. E isso, não temos como adivinhar... :-(
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Qui, 28 Jul 2005 3:36 pm

você tem razão amigo... era um relacionamento furado mesmo
Smeagoll
Localização: sp

°v°
/(_)\ Cristiano Carlos - Suporte - TI
^ ^ SOFTWARE LIVRE
"Socialmente justo, economicamente viável e tecnologicamente
sustentável"

Mensagemem Qui, 22 Mai 2008 11:31 am

bah Smeagoll, não sei se tu ainda usa o fórum mas eu estou com exatamente esse problema no EBS!! Só faltou dizer qual é o relacionamento correto que ia ser jóia!
ricardorauber
Localização: Canoas RS

Mensagemem Seg, 26 Mai 2008 12:43 pm

você deveria observar qual tabela esta trazendo dados diferentes para cada linha, o que ocasiona este produto...

ou tente colocar um distinct na frente do select...

pra verificar uma possivel falta de relacionamento você pode utilizar o "explan-plain" na query, existe um topico explicando a forma de utiliza-lo...

outra forma de localizar qual tabela esta entrando neste produto é tirando uma a uma a partir do seu ultimo relacionamento(o menos significativo)e deixando apenas as tabelas base da sua consulta (tipo tabelas que você liga apenas para trazer nome de um cliente por exemplo)

da meneira que esta fica realmente dificil a gente te falar o ponto exato que você precisa alterar pois não temos as estruturas e dados das suas tabelas...

abrçs
rodfbar
Localização: Batatais - SP

Mensagemem Ter, 27 Mai 2008 11:45 am

rodfbar

Estas são tabelas do Oracle Applications, no meu caso o E-Business Suite. Para as tabelas dos módulos padrão do Applications, a Oracle disponibiliza as informações de relacionamentos no metalink mas para o módulo REC (que é exclusivo para o Brasil), não existe isso.

Para quem não sabe, dentro do Oracle Applications, todas as chaves e constraints não estão no banco (ex: user_constraints) e sim em tabelas de configuração da Oracle (ex: fnd_tables, fnd_primary_keys).

O meu problema é que justamente por não encontrar os relacionamentos corretos dentre as centenas de campos que cada tabela tem, eu não estou conseguindo achar uma relação que seja 1 para 1.
ricardorauber
Localização: Canoas RS



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron