我正在尝试构建一个 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
任何建议,将不胜感激。
罗恩