SQL 根据列值加入

SQL Join based on a column value

我想根据列值连接不同的表

if [dbo].[fin_FixedAssetRegister].TransactionType = 'IOD' 然后加入 [dbo].[sms_IssueOrderDetail]

if [dbo].[fin_FixedAssetRegister].TransactionType = 'GRND' 然后加入 [dbo].[sms_GoodsReceivedNoteDetail]

if [dbo].[fin_FixedAssetRegister].TransactionType = 'OBL' 然后加入 [dbo].[sms_OpeningBalanceSMSDetail]

您通常会使用多个 left join。您的问题提供的有关底层结构的信息很少,但想法是:

select ...
from fin_FixedAssetRegister r 
left join sms_IssueOrderDetail od 
    on od.<???> = r.<???> and r.TransactionType = 'IOD'
left join sms_GoodsReceivedNoteDetail nd 
    on nd.<???> = r.<???> and r.TransactionType = 'GRND'
left join sms_OpeningBalanceSMSDetail bd
    on bd.<???> = r.<???> and r.TransactionType = 'OBL'

<???> 表示用于连接表的列的名称,您没有提供。