2017-07-18 82 views
-2

在SSIS中使用數據流任務,對於特定的Id,我需要從兩個表中獲取一個描述。第一個表應該在ParentTable.Id上連接以獲得ParentTabel.Description,第二個連接應該用SubCatagoryTable.ParentId列來獲取SubCatagoryTable.Description。然後我必須保持非NULL值,除非兩個描述都是NULL。基於第一個查找輸出的第二次查找

回答

1

對查詢執行單一查詢,該查詢執行從您的類別表到您的子類別表和COALESCE描述列的OUTER JOIN,以便如果來自子類別表的描述爲NULL(不在表),然後使用類別表中的描述。

+0

這個答案是正確的 – KeithL

+0

我在同一個表上的外連接獲得了什麼? – Proffesore

+0

錯字。我的意思是將該類別加入子類別。我會糾正的。 –

3

使用一個查詢。

select coalesce(sub.ID,cat.ID) as ID,coalesce(sub.Descr,cat.Descr) as Descr 
from CategoryTable cat 
left join SubCatagoryTable sub on cat.ID=sub.ParentID 

更新基於您的評論:

使用兩個查找(設置不匹配的忽視,這將留下空的不匹配:

首先查找:

集UsingSubDescr等於匹配上:

select sub.ID,cat.Descr as Descr 
from CategoryTable cat 
    join SubCatagoryTable sub on cat.ID=sub.ParentID 

第二查找:

集UsingParent在比賽上:

Select ID,descr 
from ParentTable 

現在使用派生DESCR: DESCR = ISNULL(UsingSubDescr)? UsingParent:UsingSubDescr

+0

在行級別的子類別表我有提供者ID,所以我沒有類別說明。 – Proffesore

+0

@Poffesore - 根據您的意見更新 – KeithL

+0

感謝您的更新。非常明確的答案 – Proffesore