2014-10-11 1 views
1

В веб-странице приложения oracle apps (версия 11) есть «Клиент», затем «Клиентская учетная запись», после чего вы можете выберите «Экран« Контакты для контактов », чтобы узнать подробности« Контактная информация ». Я вижу имена и «Контактный номер». Я могу найти «Контактный номер» со следующим запросом, но я не могу понять, как получить доступ к префиксу, имени, отчеством, фамилии, суффиксам и названию работы «Контактная информация»EBS Query - Как найти Имя и фамилию людей, перечисленных в «Контактная информация», с номера учетной записи

Я пытаюсь написать небольшой оператор SQL, чтобы вытащить первые имена и фамилии «Контактная информация», связанные с учетной записью, указав одно значение HZ_ACCOUNT_CONTACT.ACCOUNT_NUMBER. Поэтому вход один длинное значение и возвращение Список Первых + Фамилия «Контакты»

Моего полусыром запроса (то есть потенциально совершенно неправильно) как ниже:

SELECT 
    CA1.CUST_ACCOUNT_ID, 
    CA1.ACCOUNT_NUMBER, ----------------------------- The Input 
    P1.PARTY_ID AS P1_PARTY_ID, 
    P1.PARTY_NAME AS P1_PARTY_NAME, 
    OC2.CONTACT_NUMBER, 
    R2.CUST_ACCOUNT_ROLE_ID 
FROM 
    HZ_CUST_ACCOUNTS   CA1 
    JOIN HZ_PARTIES   P1 ON P1.PARTY_ID = CA1.PARTY_ID 
    JOIN HZ_RELATIONSHIPS  R ON R.SUBJECT_ID = P1.PARTY_ID 
    JOIN HZ_PARTIES   P2 ON P2.PARTY_ID = R.PARTY_ID 
    JOIN HZ_ORG_CONTACTS  OC2 ON OC2.PARTY_RELATIONSHIP_ID = R.RELATIONSHIP_ID 
    JOIN HZ_CUST_ACCOUNT_ROLES R2 ON R2.PARTY_ID = P2.PARTY_ID 
    -- What else do I need to join to get to "contact infomation"? 
WHERE 
    R.RELATIONSHIP_CODE = 'CONTACT' 
    AND R.OBJECT_TABLE_NAME = 'HZ_PARTIES' 
    AND P2.PARTY_TYPE = 'PARTY_RELATIONSHIP' 
    AND CA1.ACCOUNT_NUMBER = '577042' ; -------------- The Input 

В мой сломанный/неполный запрос, 577042 - номер счета

Как заполнить запрос, чтобы получить имя и фамилию контакта?

Спасибо за помощь!

ответ

1

Подход с архитектурой торгового сообщества Oracle (tca) заключается в том, чтобы вести этот запрос с помощью таблицы ar.hz_relationships. Вот ERD:

enter image description here

Вы должны определить предмет и объект этих отношений (организаций и лиц), как показано ниже.

Все хорошие контактные атрибуты в hz_parties псевдонима cont, в приведенном ниже запросе:

SELECT cacct.account_number cust_account, 
     cust.party_name customer_name, 
     crole.role_type contact_role_type, 
     cont.person_last_name contact_last_name, 
     cont.person_first_name contact_first_name, 
     cont.person_name_suffix contact_suffix, 
     cont.party_name contact_name, 
     rparty.party_name relationship_party_name 
    FROM ar.hz_relationships rel 
    JOIN ar.hz_parties cust 
    ON rel.subject_id = cust.party_id 
    JOIN ar.hz_parties cont 
    ON rel.object_id = cont.party_id 
    JOIN ar.hz_parties rparty 
    ON rel.party_id = rparty.party_id 
    JOIN ar.hz_cust_accounts cacct 
    ON rel.subject_id = cacct.party_id 
    JOIN ar.hz_cust_account_roles crole 
    ON cacct.cust_account_id = crole.cust_account_id 
    AND rel.party_id   = crole.party_id 
    WHERE rel.relationship_code = 'CONTACT' 
    AND rel.object_table_name = 'HZ_PARTIES' 
    AND rel.subject_table_name = 'HZ_PARTIES' 
    AND rel.subject_type  = 'ORGANIZATION' 
    AND rel.object_type   = 'PERSON' 
    AND rel.directional_flag = 'B' 
    AND rel.relationship_type = 'CONTACT' 
    AND crole.role_type   = 'CONTACT' 
    AND rparty.party_type  = 'PARTY_RELATIONSHIP' 
    ORDER BY 1,4,5 

Это не учитывает статусы контактов/отношений.

+0

Благодарим вас за ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^