SSRS中的复杂排序(水平和垂直)

时间:2015-09-15 12:15:44

标签: reporting-services ssrs-2012

我被要求使用此布局在SSRS中创建报告:

enter image description here

...所以我首先按供应商分组,然后按月/年分组,最后由客户分组。

这是我的主要数据集,它返回我需要的数据(以及上述分组的月份和年份日期部分)...

SELECT rvpo.SupplierName As [Supplier]
  , rvpoline.CustomerName As [Customer]
  , datepart(mm,rvpoline.DeliveryDate) As [Delivery Month]
  , datepart(yy,rvpoline.DeliveryDate) As [Delivery Year]
  , rvpo.Name As [PO #]
  , rvpoline.Quantity As [Quantity]
  , rvpoline.DeliveryDate As [Handover Date]
  FROM Finance.PurchaseOrderLine rvpoline
    JOIN Finance.PurchaseOrder rvpo on rvpo.Id = rvpoline.PurchaseOrderId
  ORDER BY 
    rvpo.SupplierName
  , DATEPART(YY, rvpoline.DeliveryDate) DESC
  , DATEPART(mm, rvpoline.DeliveryDate) DESC
  , rvpoline.CustomerName

...我不确定如何设置我的矩阵以正确订购(即随着供应商分组向下并且月份分组正在进行)。

我怀疑我将不得不使用子报告作为其中的一部分(就像我使用另一个表我会得到一个细节成员不能有内部成员错误),但我不确定我应该传递什么值我只是想知道是否有更简单的方法。

中号

P.S。我正在使用SQL 2012。

1 个答案:

答案 0 :(得分:1)

您可以使用矩阵和表格的组合来实现所需的输出。

  1. 创建矩阵并将列分组设置为月份日期,将行分组设置为供应商。

  2. 在“数据”部分中,右键单击并选择表以获取嵌套在其中的表。将表中的值设置为“客户”,“质量”和“切换”字段。在设计视图中,这看起来有点像

  3. enter image description here

    运行时会生成以下内容

    enter image description here

    通过使用Tablix的BorderColor = BlackBorderStyle = Solid属性,您可以填写缺失的边。

    enter image description here