当孩子有时空时,SSRS父子列表

时间:2012-08-15 00:46:56

标签: reporting-services parent-child

我正在尝试构建一个SSRS报告,其中数据集通过应用程序“呈现”到SSRS(Microsoft Dynamics NAV2009)。报告的概念很简单 - 它是一系列设备 - 计算机,手机等。该表有一个“与设备相关”字段。因此,设备ID“CELL01”可能具有“与设备ID相关”=“计算机123”。设备ID“CAR456”也可能有“与设备ID相关”=“计算机123”。

我想创建一份报告,列出每件设备,下面是任何“相关设备”。许多作品没有相关部分,因此列表需要如下所示:

COMPUTER001    Dell Latitude  4mb RAM  
COMPUTER002    Dell Latitude  16mb RAM  
COMPUTER123    Dell Latitude  8mb RAM  
    Related Equipment  
    CELL01   Nokia Cellphone  
    CAR456   2011 Ford Taurus  
COMPUTER135    Sony Laptop    12gb RAM  
CELL01         Nokia Cellphone  
CAR456         2011 Ford Taurus  

请注意,“相关项目”仅是单向的 - 相关项目只需要在“相关”设备下报告,反之亦然。

我做了一些尽职调查并研究了递归层次结构。似乎这种方法取决于每个拥有“父母”的“孩子”。在我的情况下,大多数“孩子”是“空”,即大多数设备没有“与设备相关”的ID。因此,如果我尝试从下到上创建列表并使用递归层次结构,在下面的示例中,将仅列出COMPUTER123及其子项。其他“父母”记录(例如COMPUTER001)都没有任何子女。

有没有人做过类似的SSRS报告?在“纯”SQL中,这类似于使用左外连接进行查询,并列出主记录中的字段,即使JOIN的结果为NULL,例如,列出了本周预订订单的所有销售人员名单:

选择s.Name,i.Invoice_No,i.Invoice_Amt
来自销售员的人士 LEFT OUTER JOIN Invoice i on s.SalespersonID = i.SalespersonID

如果销售员“Joe”本周没有进行任何销售,但销售人员“Sam”进行了3次销售,销售人员“Bruno”进行了2次销售,您可能会得到如下结果:

Name    Invoice_No  Invoice_Amt  
Bruno   1287        200.00  
Bruno   1289        400.00  
Joe     NULL        NULL  
Sam     1281        65.00  
Sam     1283        450.00  
Sam     1286        175.00  

那么你将如何构建一个报告,其中输出为:

Bruno  
  Invoices:  
           1287    200.00  
           1289    400.00  

Joe  

Sam  
  Invoices:  
           1281     65.00  
           1283    450.00  
           1286    175.00  

任何建议都将不胜感激。

罗恩

0 个答案:

没有答案