使用外键从另一个表获取值

时间:2009-08-18 21:59:45

标签: c# reporting-services

我在C#中使用报表向导构建了一个报表,我可以在ReportViewer中看到我的报表。我的问题是我有2个相关的表。第一个表中的列的值是另一个表上的外键。我在该专栏中看到的只是外键。我想从另一张表中看到相应的值。

如何从第二个表中查看列的值?

5 个答案:

答案 0 :(得分:4)

您应该加入外键列:

SELECT
    a.*,b.YourNeededColumnHere
    FROM TableA            a
        INNER JOIN TableB  b ON a.columnX=b.columnX

但是,如果您在报告服务时遇到问题,只需创建一个视图:

CREATE VIEW CombinedAB
AS 

SELECT
    a.*,b.YourNeededColumnHere
    FROM TableA            a
        INNER JOIN TableB  b ON a.columnX=b.columnX

GO

您现在应该能够将 CombinedAB 视图中的报告运行为:

SELECT
    * 
    FROM CombinedAB
    WHERE ...your conditions here...

答案 1 :(得分:1)

听起来你可能需要向下钻取报告 Create Basic Drilldown Report

答案 2 :(得分:1)

关于呈现结果的控件...是否有手动绑定的列/它是否设置为自动绑定?

答案 3 :(得分:1)

将您的查询更改为涉及相应表格中字段的查询。

SELECT t1.*, t2.value
FROM table1 t1 
   JOIN table2 t2 ON t1.t2id = t2.id

但是如果你不能,因为数据源是分开的,那么你会想要另一种选择。

假设您有两个数据集,来自不同的数据源。

在报表中放置一个表格以显示来自DataSet1的信息(或其他任何名称)。然后用一个矩形代替你的一个文本框,然后在那里放一个表,你附加到DataSet2。然后在此表上放置一个过滤器,以便它只显示DataSet2中与DataSet1中相应值对应的记录。

或者,等待SQL Server 2008 R2(目前在CTP中),它提供了一个用于此目的的查找功能。

罗布

答案 4 :(得分:-1)

将项目从表格中拖出外键,而不是它的原生位置。