我需要有条件地左联接同一张表, 本质上,我的On语句需要根据是否涉及保险公司来匹配保险公司或客户,但是由于我检索信息的方式,相对列的位置无法更改。
这是我需要运行的两个语句 保险公司发票
Left Join Public.Invoices INV ON INV.PK_QuoSum = QSM.PK_QuoSum And INV.nDebtor = QSM.InsNum
客户发票
Left Join Public.Invoices INV ON INV.PK_QuoSum = QSM.PK_QuoSum And INV.nDebtor = QSM.PK_Customer
所以我尝试了这个IF语句,但是在IF上出现错误
IF QSM.InsNum <> 0
Left Join Public.Invoices INV ON INV.PK_QuoSum = QSM.PK_QuoSum And INV.nDebtor = QSM.InsNum
Else
Left Join Public.Invoices INV ON QSM.InsNum = 0 AND INV.PK_QuoSum = QSM.PK_QuoSum And INV.nDebtor = QSM.PK_Customer
END
这是我完整陈述的子集
SELECT DISTINCT ON (QSM.PK_QuoSum)
QSM.PK_QuoSum , QSM.PK_Customer , QSM.PK_CarCust , QSM.InsNum , QSM.nDate
CUS.FName ,CUS.SName , CUS.Phone1 , CUS.EMail,
INV.nDate,
From Public.QuoSum QSM
Left Join Public.Customer CUS ON CUS.PK_Customer = QSM.PK_Customer
IF QSM.InsNum <> 0
Left Join Public.Invoices INV ON INV.PK_QuoSum = QSM.PK_QuoSum And INV.nDebtor = QSM.InsNum
Else
Left Join Public.Invoices INV ON QSM.InsNum = 0 AND INV.PK_QuoSum = QSM.PK_QuoSum And INV.nDebtor = QSM.PK_Customer
END