2013-02-07 51 views
1

我有两个数据集,它们通过一个ID号相关。我正在尝试生成一个报告,其中表格1中的一行将用于表格2中所有相关数据的部分标题。这有点令人困惑,所以这里有一些照片。SQL Server Report Builder组合多个表

数据集1

ID Company Total Sales 
1 ACME  23000 
2 AJAX  43222 
3 STACK  56700 

数据集2

ID ITEM DESC QTY 
1 A  ADESC 3 
1 B  BDESC 3 
1 C  CDESC 4 
2 D  DDESC 2 
2 E  EDESC 4 
3 F  FDESC 5 

这里是什么,我试图让报告看起来像。

1 ACME 23000 
    A ADESC 3 
    B BDESC 3 
    C CDESC 4 
2 AJAX 43222 
    D DDESC 2 
    E EDESC 4 
3 STACK 56700 
    F FDESC 5 

有没有人知道如何在报表生成器中做这样的事情。我对报表生成器非常陌生,不确定要在此查找哪些内容?任何帮助将不胜感激。

+0

是表1和表2的数据库表中的数据? –

+0

它们是Report Builder中的数据集。 –

+0

真正唯一的解决办法是创建一个子报表并将这些ID链接在一起......或者您可以简单地创建另一个包含所需的所有必需数据的数据集,并将它们组合到表中 – elvis

回答

3

我宁愿选择1,但我有2个选项让你过关。

选项1 - 如果数据集都来自同一个数据库:

会更好,如果你创建了一个SQL和包含在所有的细节行头。您希望您的SQL生成以下:

ID COMPANY TOTAL SALES ITEM DESC QTY 
1 ACME  23000  A  ADESC 3 
1 ACME  23000  B  BDESC 3 
1 ACME  23000  C  CDESC 4 
2 AJAX  43222  D  DDESC 2 
2 AJAX  43222  E  EDESC 4 
3 STACK 56700  F  FDESC 5 

编辑 - 实例SQL(未优化):

SELECT * 
FROM (/*your data set 1 sql*/) DS1, 
     (/*your data set 2 sql*/) DS2 
WHERE DS1.ID = DS2.ID 

一旦做到这一点,你应该通过Id按照表矩阵向导和组。为了充分利用向导,我只会将Id放在tablix中,并将数据集2列放在向导中作为细节,并完成向导。

然后将列插入到组中并添加数据集1列。

选项2-如果该数据集是在单独的数据库或不能被修改:

使用数据集2按照最后一个选项是确保由Id以包括该组。

然后插入其他2列和使用LookUpLookUpSet函数来提取从数据集2.

+0

所有值都来自相同的DB。 total_sales列由SUM SQL函数生成,这就是为什么它在单独的表中,因为我必须将所有其他列包含在group by子句中。 –

+0

@ReidMac,这是没有问题的,我已经添加了一个基于这里的信息的示例sql,并没有进行优化,但将工作不会少。你可以使用窗口函数,但没有数据库方案,我无法推测一个例子。 – glh

相关问题