【问题标题】:How to Order Positive and Negative Integers One after the other如何一个接一个地排序正整数和负整数
【发布时间】:2016-02-03 13:48:41
【问题描述】:

在 Sql Server Reporting Services 中,我有一个数据集用作报表的参数。

选择不同的(整数#) 从表 按整数#排序。

这些整数是年月的正数和负数。例如,这个月是 201602 和 -201602。上个月是 201601 和 -201601。我有 78 个选择,可以追溯到几年前,每个月都有 - 和 +。

问题是我想一个接一个地订购这些参数选择。就像这个例子一样:

201602 -201602 201601 -21601

现在他们列为 -201602 -201601 -201512 列表底部的最后一个选择(第 78 个)是 201602

问题在于尝试这样做,以便为每个 yearmonth 选择两个选项的用户不必滚动从顶部的否定选项到肯定选项的底部来选择该特定年月的正面和负面...例如,由于上面的 select 语句中的升序,我现在将所有负数放在顶部,将所有正数放在底部。如果我按降序创建上面显示的选择语句,那么正面的选择位于顶部,而年份和月份的负面选择位于 78 个选择的底部。

有没有一种简单的方法可以一个接一个地得到负年月和正年月?

【问题讨论】:

  • 如果您使用 Interger# 创建一个单独的排序列并修剪它 - 在负数前面然后按该排序列排序。它应该把它们放在一起。
  • 从来没想过。该表是我不敢碰的商业软件的一部分(我是新手),但如果我能想办法用那些不同的 (整数) 创建一个视图。现在只需要弄清楚如何做到这一点。我对 sql 还不是很满意。但我想这就是谷歌的目的。谢谢你的想法。
  • 可以将结果转储到临时表中并将列添加到该表中。
  • 我的进阶之路。还不知道该怎么做。

标签: parameters ssrs-2008-r2


【解决方案1】:

选择数据时使用绝对值函数。

SELECT my_integer
FROM my_table
ORDER BY ABS(my_integer)

这将按整数大小对您的数据进行排序。

【讨论】:

  • 试过了,但由于 select 有一个独特的子句,我一直收到错误。在谷歌搜索了一些之后,我终于使用了这个有效的语句。 SELECT postwho FROM CombinedChargesCreditsWithChargeCodes GROUP BY postwho ORDER BY ABS(postwho) DESC
【解决方案2】:

这最终成为了解决方案。

选择 postwho FROM CombinedChargesCreditsWithChargeCodes WHERE (postwho) GROUP BY postwho ORDER BY ABS(postwho) DESC

感谢 Jesse 没有意识到 ABS 功能可能起作用的想法。但由于选择中的不同,我不断出错。我用谷歌搜索了更多,并找到了一种解决使用 group by 的明显错误购买的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2019-11-23
    相关资源
    最近更新 更多