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'
<???>
表示用于连接表的列的名称,您没有提供。
我想根据列值连接不同的表
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'
<???>
表示用于连接表的列的名称,您没有提供。