我在C#中使用报表向导构建了一个报表,我可以在ReportViewer中看到我的报表。我的问题是我有2个相关的表。第一个表中的列的值是另一个表上的外键。我在该专栏中看到的只是外键。我想从另一张表中看到相应的值。
如何从第二个表中查看列的值?
答案 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)
将项目从表格中拖出外键,而不是它的原生位置。