我不知道如何获取存储在HZ_PARTIES中的所有联系信息。
我们有HZ_PARTIES和HZ_PARTY_SITES,都有联系方式,对吗?
我想从HZ_PARTIES获取信息。
问题是我的查询无法正常工作,它不会检索我想要的信息。如果我使用此查询:
SELECT
hp.party_name
, hca.account_number
, hcp.phone_number
, hcp.email_address
FROM apps.hz_cust_accounts hca
INNER JOIN apps.hz_cust_acct_sites_all hcas ON hca.cust_account_id = hcas.cust_account_id
INNER JOIN apps.hz_party_site hps ON hcas.party_site_id = hps.party_site_id
INNER JOIN apps.hz_locations hl ON hps.location_id = hl.location_id
INNER JOIN apps.hz_parties hp ON hps.party_id = hp.party_id
LEFT JOIN (
SELECT
owner_table_id
, max(case when contact_point_type = 'PHONE' then phone_number end) phone_number
, max(case when contact_point_type = 'EMAIL' then email_address end) email_address
FROM hz_contact_points
WHERE status = 'A'
AND primary_flag = 'Y'
AND owner_table_name = 'HZ_PARTIES'
AND contact_point_type IN ('EMAIL','PHONE')
GROUP BY
owner_table_id
) hcp ON hcas.party_site_id = hcp.owner_table_id
WHERE hcas.status = 'A'
AND hps.status = 'A'
AND hca.status = 'A'
--AND hca.account_number = 'account_number'
;
请注意我使用这个条件:
hcp ON hcas.party_site_id = hcp.owner_table_id
但是这个查询不能正常工作,因为如果我想找到特定帐号的所有联系信息,它应该返回一封电子邮件,但它返回NULL
事实上,如果我把另一个条件换成前一个条件:
hcp ON hcas.party_site_id = hps.party_site_id
它返回单个account_number的几个结果,一切都是错误的但它显示我正在寻找的电子邮件。这里发生了什么?
你能帮我解决这个问题吗?
PS:每次创建客户时,都会执行以下过程:
据我所知,HZ_PARTIES = HZ_PARTY_SITES
这是一对多的关系。所以HZ_PARTY_SITES可以包含例如地址为“账单到”,“运到”等。首先,在EBS中查询客户有多少个网站。
我也建议你翻页http://etrm.oracle.com/pls/etrm/etrm_search.search。您可以在那里检查EBS表之间的关系。
如您所见,hcp ON hcas.party_site_id = hcp.owner_table_id
之间的关系不存在。