对A-Z进行排序,但在SSRS中对特定行进行分组

时间:2017-01-25 13:31:41

标签: reporting-services

我对SSRS报告提出了一个简短的问题。

我目前有一份报告,其中显示了从A-Z排序的客户及其余额列表。

但是,我希望一个接一个地展示4个客户,

例如,

亚当

亚历

迪安

Brian *< - 我希望布莱恩和费尔南多一个接一个地出现,而名单的其余部分仍保持A-Z

费尔南多*

伦纳德

标记

这可能吗?任何意见都表示赞赏!

谢谢

2 个答案:

答案 0 :(得分:2)

我过去遇到过类似的问题。我能够克服它使用case语句对SQL中的数据进行排序,然后将其用作SSRS中的数据集。见下文的例子。

;WITH Sort AS 
(
SELECT 'Aiden' AS CustomerName UNION
SELECT 'Jackson'UNION
SELECT 'Ethan'UNION
SELECT 'Liam'UNION
SELECT 'Mason'UNION
SELECT 'Noah'UNION
SELECT 'Lucas 'UNION
SELECT 'Jacob 'UNION
SELECT 'Sophia 'UNION
SELECT 'Emma 'UNION
SELECT 'Olivia 'UNION
SELECT 'Isabella 'UNION
SELECT 'Ava 'UNION
SELECT 'Lily 'UNION
SELECT 'Zoe 'UNION
SELECT 'Chloe 'UNION
------------------
SELECT 'Fernando' UNION
SELECT 'Leonard'UNION
SELECT 'Mark'
)
SELECT
CASE WHEN CustomerName = 'Fernando' THEN 1
     WHEN CustomerName = 'Leonard' THEN 2
     WHEN CustomerName = 'Mark' THEN 3
     Else 4 END AS Sort,
CustomerName
FROM Sort
ORDER BY Sort,CustomerName

答案 1 :(得分:1)

获得预期的正确方法应该是将每个客户映射到相应的组:

Group   Name 

Group1  Adam
Group2  Alex
Group3  Dean
Group4  Brian
Group4  Fernando
Group5  Mark

然后在您的Tablix中,您可以创建一个组,它将在同一组中显示彼此的名称。此外,您只需使用以下内容即可获得一个余额:

=SUM(Fields!Balance.Value,"Group")

但是,如果您不想创建组,则可以在条件排序表达式中对名称进行硬编码:

在“Tablix属性/排序”选项卡中添加新的表达式并使用:

=Switch(Fields!Name.Value="Brian","Brian1",
Fields!Name.Value="Fernando","Brian2",
true, Fields!Name.Value
)

你会得到这个:

enter image description here

如果有帮助,请告诉我。