多表关联查询需求:按规则整合账户与客户相关数据
多表关联查询需求
现有ACCOUNTS、CUSTOMERROLE、CUSTOMER、CONSUMER、LOCADDRESS五张表,需按特定规则进行关联查询:
各表说明
- ACCOUNTS:核心字段为ACCTNO(账户号)、PRI_CUSTOMER_NO(主客户号)、CUST_CLASS(客户类别);
- CUSTOMERROLE:通过ACCTNO关联,可获取该账户下所有CUSTOMER_NO(客户号);
- CUSTOMER:存储客户信息,包含LASTNAME(姓氏)、各类电话及EMAILSEARCH(邮箱);
- CONSUMER:通过ACCTNO关联,提供STATUS_TYPE(状态类型);
- LOCADDRESS:以ITEM_ID(对应客户号)为关联键,存储客户地址信息。
查询输出字段
需为每个ACCTNO返回以下字段:ACCTNO(账户号)、STATUS_TYPE(状态类型)、CUST_CLASS(客户类别)、LASTNAME(姓氏)、STREET(街道)、POSTCODE(邮编)、PHONE(电话)、EMAIL(邮箱)。
查询规则
- 优先使用PRI_CUSTOMER_NO对应的客户数据,若该客户的相关字段为空,则使用同一账户下其他客户的数据;
- PHONE字段可返回PRIVATE_PHONE(私人电话)、PRIVATE_MOBILE(私人手机)、WORK_PHONE(工作电话)中的任意非空值;
- 允许混合不同客户的非空数据,以尽可能减少NULL值为目标,无匹配数据则返回NULL。
示例输出
| ACCTNO(账户号) | STATUS_TYPE(状态类型) | CUST_CLASS(客户类别) | LASTNAME(姓氏) | STREET(街道) | POSTCODE(邮编) | PHONE(电话) | EMAIL(邮箱) |
|---|---|---|---|---|---|---|---|
| 100186 | 30 | SME | Smith | High St | SE12RX | 846313 | Smith@gmail.com |
内容的提问来源于stack exchange,提问作者davidjwest
相关产品推荐
相关产品推荐

