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]
结果
我需要对从其中一个日期集获得的付款范围字段的 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]