SSRS 报表自定义排序

SSRS Report Custom Sort

我需要对从其中一个日期集获得的付款范围字段的 SSRS 报告实施自定义排序

付款范围显示如下:

[=10=] - 0       
0.01 - 00     
,000.01 - ,000     
,000.01 - ,000        
,000.01 - ,000        
,000.01 - ,000        
,000.01 - ,000        
,000.01 - ,000

我用if else来实现

  =IIF(Fields!netPaymentRange.Value= "[=11=] - 0", "A",
    IIF(Fields!netPaymentRange.Value= "0.01 - 00", "B",
    IIF(Fields!netPaymentRange.Value= ",000.01 - ,000", "C", 
    IIF(Fields!netPaymentRange.Value= ",000.01 - ,000", "D",
    IIF(Fields!netPaymentRange.Value= ",000.01 - ,000", "E",
    IIF(Fields!netPaymentRange.Value= ",000.01 - ,000", "F",
    IIF(Fields!netPaymentRange.Value= ",000.01 - ,000", "G","")))))))

但它对我不起作用。请推荐

我会创建一个带有 select 来自值查询的 CTE,以便为您的付款范围列表创建排序顺序。然后您可以加入报表数据集的源 table/view。我仍然建议将 payment_range 存储为 table.

示例SQL

WITH
payment_range
AS
(
    SELECT tbl.* FROM (VALUES
      ( '[=10=] - 0', 1)
    , ( '0.01 - 00', 2)
    , ( ',000.01 - ,000', 3)
    , ( ',000.01 - ,000', 4)
    , ( ',000.01 - ,000', 5)
    , ( ',000.01 - ,000', 6)
    , ( ',000.01 - ,000', 7)
    ) tbl ([netPaymentRange], [netPaymentRangeSortOrder]) 
)
SELECT 
    * 
FROM 
    payment_range --join to your source table here
ORDER BY 
    [netPaymentRangeSortOrder]

结果