如何显示多个表中的父记录和子记录
Posted
技术标签:
【中文标题】如何显示多个表中的父记录和子记录【英文标题】:how to display parent record and children from multiple tables 【发布时间】:2014-10-17 14:04:38 【问题描述】:我有三个表,1 个父表和 2 个子表一对多关系。 表 1:人 表 2:电话号码(任意数量的记录) 表 3:电子邮件地址(任意数量的记录)
我想要一份如下所示的报告: 人1: 名字-------姓氏 电话1:--------12345----首页 电话2:------54321----工作 mail1:-------first@mail.com----工作 mail2:-------first@mail.com----工作 mail3:-------first@mail.com----工作
第二个人: -------First_Name-----Last_Name 电话1:--------12345----首页 电话2:------54321----工作 mail1:-------first@mail.com----工作 mail2:-------first@mail.com----工作 mail3:-------first@mail.com----工作
我非常希望使用报告服务来做到这一点。
编辑:我知道如何用左连接链接所有表,我不知道如何完成此操作。
【问题讨论】:
请将您尝试过的内容添加到您的问题中 看来您对 s-s-rS 不太了解。尝试了解它,自己尝试一下,如果您遇到困难,请具体询问我们问题所在。这个tutorial 可能会对你有所帮助。 查看问题。我真的不知道从哪里开始。 按照本教程 (msdn.microsoft.com/en-us/library/ms167305.aspx) 开始操作 啊。这很有帮助(!)。我知道如何将 SRSS 中的数据与总计进行分组。您是否知道一种将数据放在行而不是列中的方法?那将是一个好的开始。 【参考方案1】:好的,下面是关于您需要如何处理它的摘要。我不能一步一步地给你,因为它不可能很长,但这应该让你开始。 (另请注意,我是凭记忆这样做的):
您将需要三个数据集,每个数据集用于人员、电话号码和电子邮件地址。我将假设电话号码和电子邮件地址具有某种共同的 ID 字段,以某种方式将人们与电话和电子邮件地址联系起来。您需要在数据集中使用该字段。
您无需在 SQL 中进行任何连接:三个数据集之间的链接将在报表中完成。
在您的报告中放置一个矩阵。让它从 People 数据集中绘制。将名字和姓氏放在矩阵的详细信息行中。
在您的矩阵中添加一个新的详细信息行,在您的名字和姓氏下。
合并新详细信息行中的单元格,这样您就有一个非常宽的单元格。
在新详细信息行的单个宽单元格中嵌入(拖放)一个新矩阵。
将您的矩阵链接到 Phones 数据集。在矩阵中设置记录过滤器以将记录限制为与父矩阵中的 ID 字段匹配的记录。
在嵌入式子矩阵中根据需要设置电话。
对电子邮件地址数据集重复步骤 3-7。
您实际上不需要进行任何分组(除非您想包括某种小计),因为您实际上并没有对任何内容进行分组:您只是显示一个带有嵌入子列表的列表。
【讨论】:
非常感谢。我确实收到一个错误:“报表项表达式只能引用当前数据集范围内的字段,或者,如果在聚合内,则指指定的数据集范围”测试第二个嵌入式矩阵。你知道如何摆脱它吗? 报表项通常是指报表上的显示项。它是否说明了它抱怨的报告项目?它试图显示的表达式是什么?以上是关于如何显示多个表中的父记录和子记录的主要内容,如果未能解决你的问题,请参考以下文章