1

我正在尝试构建一个 SSRS 报告,其中数据集通过应用程序(Microsoft Dynamics NAV2009)“呈现”给 SSRS。报告的概念很简单 - 它是设备的列表 - 计算机、手机等。该表有一个“与设备相关”字段。所以设备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  

请注意,“相关项目”只是单向的——相关项目只需要在“相关”设备下报告,反之则不需要。

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

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

选择 s.Name, i.Invoice_No, i.Invoice_Amt
from Salesperson s
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  

任何建议,将不胜感激。

罗恩

4

0 回答 0