目前我的报告看起来像这样:
C1 C2 Var1 Var2
a b A <empty>
a b <empty> B
a b <empty> C
c d A <empty>
e f <empty> B
在我的数据集中,有些记录在C1和C2中共享相同的值,但在第三列C3中有所不同。 Var1和Var2是使用C3的变量。变量定义如下:
Var1 = [C3] Where ([C3] InList ("A"))
Var2 = [C3] Where ([C3] InList ("B";"C"))
我想组合列C1和C2中的值相同的行,如果其中一个为空,则将Var1和Var2组合在一起。我希望报告以下列方式显示:
C1 C2 Var1 Var2
a b A B
a b A C
c d A <empty>
e f <empty> B
这实际上与SQL中的以下查询相同:
Select T1.C1, T1.C2, T2.C3, T3.C3 from tableone T1
Left Join tabletwo T2 on
T1.C1 = T2.C1 and T1.C2 = T2.C2 and T2.C3 = 'A'
Left Join tabletwo T3 on
T1.C1 = T3.C1 and T1.C2 = T3.C2 and T3.C3 in ('B','C');
在上面的SQL中,tableone对每个唯一(C1,C2)对都有一行。在tabletwo中,可能有多个行具有不同的C3值,这些行共享C1和C2。
Business Objects中是否有一种方法可以组合行,其中一行具有空Var1或Var2而另一行在同一列中具有值?
答案 0 :(得分:0)
我使用Dimension Detail变量在同一行上显示共享C1的记录的不同C3值。
首先,我使用了两个查询,每个查询都使用不同的限制来获取C3。查询还抓取了共享的C1列。我使用了以下查询过滤器:
For query 1: C3 InList('A')
For query 2: C3 InList('B';'C')
我合并了两个查询中的共享C1列,然后,我创建了两个新变量Case1和Case2。 Case1和Case2是指合并C1的详细尺寸。
Case1=[Query1].[C3]
Case2=[Query2].[C3]
现在Case1和Case2等于我想要的C3的两组不同的值。由于这些变量都是附加到共享C1的详细信息,因此我能够创建一个表,其中两个变量都引用它们的共享C1。