在SSRS 2005中,有没有办法可以创建两个并排的表,每个表有6行,这样每个表(或Matrix)都有相同数据集的一部分?
以下是我用于数据集的查询。
Select
Equipment_EquipmentID,
Equipment_Description,
Vendor,
Operator,
JobAccount_TrackingID
from
(
Select row_number() over (partition by Equipment_EquipmentID order by JobAccount_TrackingID) row,*
from
(
SELECT DISTINCT
CustomizedFieldLogEquipmentJobAccount_1.Equipment_EquipmentID,
CustomizedFieldLogEquipmentJobAccount_1.Equipment_Description,
NULL as Vendor,
NULL as Operator,
CustomizedFieldLogEquipmentJobAccount_1.JobAccount_TrackingID
FROM
CustomizedFieldLogEquipmentJobAccount AS CustomizedFieldLogEquipmentJobAccount_1 INNER JOIN CustomizedAccount ON CustomizedFieldLogEquipmentJobAccount_1.Account_AccountID = CustomizedAccount.AccountID
WHERE
(CustomizedAccount.AppliesToEquipment = 1)
AND
(CustomizedFieldLogEquipmentJobAccount_1.FieldLog_FieldLogID =@FieldLogID)
--AND
--IsRented = 0
Union
Select Distinct
Equipment_EquipmentID,
Equipment_Description,
Null as Vendior,
NULL as Operator,
fake_TrackingID
FROM
CustomizedFieldLogEquipment
cross join
(
Select 'zzz01' fake_TrackingID
union Select 'zzz02'
union Select 'zzz03'
union Select 'zzz04'
union Select 'zzz05'
union Select 'zzz06'
union Select 'zzz07'
union Select 'zzz08'
union Select 'zzz09'
union Select 'zzz10'
) a where FieldLog_FieldLogID = @FieldLogID --AND IsRented = 0
) b
) c where Row<=6
order by Equipment_EquipmentID,JobAccount_TrackingID
TrackingiD是我的Matrix中的列,我需要显示总共6列天气或不存在数据(因此假的TrackingIds)查询效果很好。但是,如果rowcount大于6,我需要能够在报告中的两个矩阵控件之间拆分查询结果。 本质上我需要2个6x6表。它需要工作的方式很奇怪。如果查询结果返回的行数超过6行,则用户希望其余记录流向第2个表。有点像下图:
由此:
对此:
我已经在表单上获得了两个矩阵控件,但是如果行数大于7左右,就无法弄清楚如何在两个表之间拆分数据集。
这可能吗?如果是这样的话?我做了一些搜索,但无法弄清楚如何将单个记录集拆分为两个矩阵控件。任何帮助表示赞赏。我一直试图告诉用户这不是表单打印程序,而是一个旨在报告数据库中的内容的程序。
由于
答案 0 :(得分:0)
将RowNumber列添加到数据集中。
然后add a filter to each matrix control。第一个矩阵应该过滤RowNumber在1-6之间的行,第二个矩阵将过滤7-12。
不可否认,这是一种快速而肮脏的方式。然而,报告本身不属于SSRS的预期用途,所以我不知道如果没有任何性能问题,是否真的值得担心如何分割矩阵。
这似乎是如此限制和不灵活。用户是否真的确定他们只需要x行,永远?如果他们改变了行数,那么您就是必须对报告进行更改以适应的受害者。