带有多个子表的SSRS报告

时间:2013-06-04 21:02:49

标签: sql-server-2008 reporting-services ssrs-2008 ssrs-grouping

所以我正在研究SSRS 2008中的发票报告。该数据库包含4个相关表格:
- 工作订单
- 劳工
- 材料
- 服务(分包商)

显然,工单表包含有关整体工单的所有相关信息(我们显示位置,优先级等内容)。对于此发票报表,我需要在顶部显示工作订单详细信息,然后显示工作订单上使用的人工,材料和服务(每个工作订单的总计),然后显示工作订单的全部总成本。工作单。

我的问题是:我可以做一个与Work Order +任何一个子表一起使用的数据集,但是我无法弄清楚如何做所有3个!我不能简单地为WONUM做一个带有3(或4)个表的参数,因为这个报告上有很多工单(每页一个)。当我使用带有工作订单表和一个子表的数据集时,我按WONUM分组,然后在每个实例之间进行分页。

有关如何处理它的任何想法?我遇到的大多数答案都说制作了一个巨大的“union all”数据集,然后将其分组,或者为每个子表使用子报表。但是,我们将此报告导出到Excel,并且我被告知子导出在导出时无法正确呈现。

非常感谢任何和所有帮助!谢谢!

修改

以下是我想要使用的4个查询:

这将检索需要结算的所有工单:

SELECT wonum, description, location FROM workorder WHERE billable=1 AND status='COMP'

这将检索工单(由@wonum指定)

的人工
SELECT regularhrs, laborrate, totalcost FROM labor WHERE refwo=@wonum    

这将检索工作单的材料(由@wonum指定)

SELECT description, quantity, unitcost, totalcost FROM material WHERE refwo=@wonum

这将检索工单(由@wonum指定)的服务(转包商小时)

SELECT description, hours, laborrate, totalcost FROM service WHERE refwo=@wonum

正如我在原始帖子中所述,我的第一个查询检索需要开帐单的所有工单,然后对于每个工单(每页一个),我需要检索人工,材料和服务并显示它在工作单详细信息下方的3个表格中,然后在工单发票上(在每个工单的末尾,而不是所有工单的末尾)总计总成本

我可以获得当前报告的截图,如果这也有帮助的话。请在评论中告诉我!

1 个答案:

答案 0 :(得分:1)

您的查询应该是这样的

SELECT WO.wonum, WO.description as WorkorderDescription, WO.location, L.regularhrs, L.laborrate, L.totalcost,
M.description as MaterialDescription, M.quantity, M.unitcost, M.totalcost as MaterialCost,
S.description as ServiceDescription, S.hours, S.laborrate, S.totalcost as ServiceCost
FROM workorder AS WO
INNER JOIN labor AS L on L.refwo = WO.wonum
INNER JOIN material AS M on M.refwo = WO.wonum
INNER JOIN service AS S on S.refwo = WO.wonum
WHERE billable = 1 AND STATUS = 'COMP'

这将有效地将您需要的信息收集到一个数据集中。您需要使用分组功能在SSRS中设置表。如果你不能正确地获得表格布局,你可能需要做一些额外的研究。