Ssis 基于第一个查找输出的第二个查找

Ssis 基于第一个查找输出的第二个查找,ssis,Ssis,在SSIS中使用数据流任务时,对于特定Id,我需要从两个表中获取描述。第一个表应为ParentTable.Id上的join以获取ParentTable.description,第二个join应为SubCatagoryTable.ParentId列以获取SubCatagoryTable.description。然后我必须保持非NULL值,除非两个描述都为NULL 对从类别表到子类别表进行外部联接的查询执行单个查找,并合并描述列,这样,如果子类别表中的描述为空或不在表中,则使用类别表中的描述。使用一

在SSIS中使用数据流任务时,对于特定Id,我需要从两个表中获取描述。第一个表应为ParentTable.Id上的join以获取ParentTable.description,第二个join应为SubCatagoryTable.ParentId列以获取SubCatagoryTable.description。然后我必须保持非NULL值,除非两个描述都为NULL

对从类别表到子类别表进行外部联接的查询执行单个查找,并合并描述列,这样,如果子类别表中的描述为空或不在表中,则使用类别表中的描述。

使用一个查询

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
根据您的评论更新:

使用两个查找将不匹配设置为忽略,这将为不匹配保留空值:

第一次查找:

使用Subdescr将以下项设置为匹配项:

select sub.ID,cat.Descr as Descr
from CategoryTable cat
    join SubCatagoryTable sub on cat.ID=sub.ParentID
Select ID,descr
from ParentTable
第二次查找:

在匹配上设置UsingParent:

select sub.ID,cat.Descr as Descr
from CategoryTable cat
    join SubCatagoryTable sub on cat.ID=sub.ParentID
Select ID,descr
from ParentTable
现在使用派生描述:
Descr=isnullUsingSubDescr?UsingParent:UsingSubDescr

在行级别的子类别表中,我获得了提供程序Id,因此我没有类别描述。@Proffesore-根据您的注释更新我在同一个表上使用外部联接获得了什么?输入错误。我的意思是将类别加入子类别。我会纠正的。当两个数据集中都有一个ID时,他会遇到麻烦,因为它们是不同表中的键。这就是为什么我改为双重查找,然后派生。另一种方法是选择不同ID的查找,这是两个查找查询并集的描述。我可以修改一下您的答案吗?或者,只有在cat和SUBACT表中都存在提供商名称的情况下,它才有效?从问题和其他答案中发布的内容来看,我不清楚为什么这个答案不能正常工作。如果您发布了表定义和示例数据,我可能会进一步提供帮助。