【问题标题】:SSRS Report Custom SortSSRS 报表自定义排序
【发布时间】:2018-09-02 07:37:37
【问题描述】:

我需要对从日期集之一获取的 Payment-Range 字段的 SSRS 报告实施自定义排序

Payment-Range 如下所示:

$0 - $200       
$200.01 - $1000     
$1,000.01 - $10,000     
$10,000.01 - $20,000        
$20,000.01 - $30,000        
$30,000.01 - $40,000        
$40,000.01 - $50,000        
$50,000.01 - $60,000

我使用 if else 来实现

  =IIF(Fields!netPaymentRange.Value= "$0 - $200", "A",
    IIF(Fields!netPaymentRange.Value= "$200.01 - $1000", "B",
    IIF(Fields!netPaymentRange.Value= "$1,000.01 - $10,000", "C", 
    IIF(Fields!netPaymentRange.Value= "$20,000.01 - $30,000", "D",
    IIF(Fields!netPaymentRange.Value= "$30,000.01 - $40,000", "E",
    IIF(Fields!netPaymentRange.Value= "$40,000.01 - $50,000", "F",
    IIF(Fields!netPaymentRange.Value= "$50,000.01 - $60,000", "G","")))))))

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

【问题讨论】:

  • 数据集的查询源是什么? SQL Server、Oracle、XML 等
  • 如果您可以应用排序列,您似乎应该将Payment-Range 存储在查找表中。
  • 不工作?请提供比“不工作”更多的细节,因为它没有任何意义。
  • 查询源是SQL Server,不起作用意味着它的结果如下: - $ 0 - $ 200 $ 1,000.01 - $ 10,000 $ 10,000.01 - $ 20,000 $ 200.01 - $ 1000 $ 20,000.01 - $ 30,000 $ 30,000.01 - $ 40,000 $ 40,000.01 - $ 50,000 $ 40,000.01 - $ 50,000 $ 40,000.01 - $ 60,000 $ 40,000.01 - $ 50,000 $ 40,000.01 - $ 50,000 $ 50,000.01 - $ 50,000 $ 50,000.01 - $ 50,000 $ 50,000.01 - $ 60,000
  • 如果您将上述语句作为表达式分配给列,您会得到正确/期望的结果吗?我会考虑对这样的事情使用 switch 语句.. 更好.. 在您的数据源中返回一个合适的行来进行排序

标签: reporting-services ssrs-2017


【解决方案1】:

我将使用从值查询中选择的 CTE 创建一个 CTE,以便为您的付款范围列表创建排序顺序。然后,您可以加入报表数据集的源表/视图。我仍然建议将payment_range 存储为表格。

示例 SQL

WITH
payment_range
AS
(
    SELECT tbl.* FROM (VALUES
      ( '$0 - $200', 1)
    , ( '$200.01 - $1000', 2)
    , ( '$1,000.01 - $10,000', 3)
    , ( '$20,000.01 - $30,000', 4)
    , ( '$30,000.01 - $40,000', 5)
    , ( '$40,000.01 - $50,000', 6)
    , ( '$50,000.01 - $60,000', 7)
    ) tbl ([netPaymentRange], [netPaymentRangeSortOrder]) 
)
SELECT 
    * 
FROM 
    payment_range --join to your source table here
ORDER BY 
    [netPaymentRangeSortOrder]

结果

【讨论】:

  • 别担心,伙计。如果我的回答对您有所帮助,请您单击答案旁边的复选标记以将其从灰色切换为已填充?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多