如何显示多个表中的父记录和子记录

时间:2014-10-17 14:04:39

标签: sql sql-server-2008 ssrs-2008

我有三张桌子,一张父母有2张子桌子1对多的关系 表1:人们 表2:电话号码(任意数量的记录)
表3:电子邮件地址(任意数量的记录)

我想要一份看起来像这样的报告:

PERSON1:
-------将First_Name LAST_NAME
PHONE1:------ ---- 12345家
PHONE2:------ 54321 ----工作
MAIL1:------- first@mail.com----work
mail2:------- first@mail.com----work
mail3:------- first@mail.com----work

PERSON2:
------- -------将First_Name LAST_NAME
PHONE1:------ ---- 12345家
PHONE2:------ 54321 ----工作
MAIL1:------- first@mail.com----work
mail2:------- first@mail.com----work
mail3:------- first@mail.com----work

我非常希望使用报告服务来做到这一点。

编辑:我知道如何使用左连接链接所有表格,我没有关于如何完成此操作的概念。

1 个答案:

答案 0 :(得分:0)

好的,这里有一个关于如何处理它的总结。我不能一步一步地给你,因为这将是不可能长的,但这应该让你开始。 (还要注意我是从记忆中做到的):

  1. 您需要三个数据集,分别用于人员,电话号码和电子邮件地址。我将假设电话号码和电子邮件地址有某种共同的ID字段,某种方式可以将人们绑定到电话和电子邮件地址。您将需要数据集中的该字段。

    您不需要在SQL中进行任何连接:三个数据集之间的链接将在报告中完成。

  2. 在报告中添加矩阵。从People数据集中抽取它。将名字和姓氏放在Matrix的详细信息行中。

  3. 在您的名字后面的Matrix中添加一个新的详细信息行。

  4. 合并新细节行中的单元格,以便有一个非常宽的单元格。

  5. 在新细节行的单个宽单元格中嵌入(拖放)新Matrix。

  6. 将矩阵链接到Phones数据集。在矩阵中设置记录过滤器,将记录限制为与父矩阵中的ID字段匹配的记录。

  7. 在嵌入式子矩阵中设置您想要的电话。

  8. 使用电子邮件地址数据集重复步骤3-7。

  9. 您实际上不需要进行任何分组(除非您想要包含某种小计),因为您实际上并没有对任何内容进行分组:您只是显示包含嵌入子列表的列表。