SSRS查找-可以在多列上联接

时间:2018-08-08 17:12:24

标签: join visual-studio-2012 reporting-services ssrs-2012 lookup

我对SSRS中的查询有疑问。我目前正在使用Visual Studio 2012 / SQL Server-2012。

我有以下2个数据集,其中包含以下各列:

Table 1 Dataset     Table 2 Dataset
Client Number       Loan Client Number
Loan Number         Loan Detail Number
Loan ID             Loan Amount
Borrower Name       Loan Type

我正在尝试按以下顺序在SSRS中使用决赛桌:

Client Number | Loan Number | Loan ID | Borrower Name | Loan Amount | Loan Type

在上述情况下,客户号(表1)=贷款客户号(表2)和贷款号(表1)=贷款明细号(表2)

现在,我有一个查找,其中只有一个联接可以引入其他列:

=Lookup(Fields!Loan_Number.Value,Fields!Loan_Detail_Number.Value,Fields!Loan_Amount.Value,"Table_2_Dataset")

我知道在加入1列时如何进行查找。有没有一种方法可以在多个列上进行联接(在这种情况下,在客户编号和贷款编号上联接)?

1 个答案:

答案 0 :(得分:1)

您要加入的“字段”只是表达式,因此您可以简单地在比较的两边将两个(或更多)字段结合在一起以进行结合。根据数据类型,数字范围等,您可能需要做一些工作以确保它们将是唯一的,但应该相当简单。

例如,如果我们仅将客户编号111和负载明细编号1合并,我们将得到1111,但是我们可能有一个客户编号11和贷款明细编号11,这也将给我们1111。

为简单起见,可以说两个数字都不会超过999。因此我们要加入的表达式将是这样。 (从数据集的字段名称中猜测您的字段名称)

(((Fields!Client_Number.Value * 1000)+ Fields!Loan_Number.Value)

所以您的完整表情看起来像

=Lookup(
        ((Fields!Client_Number.Value * 1000) + Fields!Loan_Number.Value),
        ((Fields!Loan_Client_Number.Value * 1000) + Fields!Loan_Detail_Number.Value),
        ,Fields!Loan_Amount.Value
        ,"Table_2_Dataset"
       )