Oracle特殊外連做法--帶條件外連接.

来源:互联网 发布:网络用语jd是什么意思 编辑:程序博客网 时间:2024/04/30 12:50

在做報表時要實現的功能:

發票主表a有一客戶編號a.IDENTITY
另有一表客戶聯絡方法 b表,同一客戶可能有好多聯繫方法,也有可能沒有.內有一METHOD_DEFAULT若為TRUE;則取此聯絡方法 ,否則聯繫方法為空;

a.invoiceno a.IDENTITY
1001          KH001
1002          KH001
1003          KH002
1004          KH003

b.Customer_ID b.METHOD_DEFAULT b.VALUE
KH001              TRUE          0512-123456789
KH001              FALSE        0512-987654321
KH001             FALSE         0512-9999999 
KH003             FALSE          0512-88888888

=>最後的效果:
a.invoiceno a.IDENTITY b.VALUE
1001 KH001 0512-123456789
1002 KH001 0512-123456789
1003 KH002
1004 KH003

sql語句的做法(Where):
--客戶聯絡方法
 a.IDENTITY = b.Customer_ID(+)
AND b.METHOD_DEFAULT(+) = 'TRUE'


--注意:少了一個(+)都不可以.
我一開始用下面的這個,資料出來死也不正確
 a.IDENTITY = b.Customer_ID(+)
AND b.METHOD_DEFAULT = 'TRUE'

知道就不難,不知道就難上難.

原创粉丝点击