访问不会按总价值排序货币 - SQL - 排名

时间:2013-03-29 21:24:44

标签: sql ms-access format currency ranking

这可能是一个简单的问题,但令人惊讶的是我没有找到适合这里的任何东西。我做了一个查询,我将数字格式化为货币。 具体做法是:

Format((Sum([CombineTables].[Total Extended Price])),'Currency')

现在,当我尝试对Access进行排序时,它会执行以下操作:

$9,994,340.95
$9,200.50
$9.75
$8,000,0000.00
$4,000
$1,000,000,000.00

我想通过SQL对这些进行排名,我认为排序是最简单的方法。你知道如何纠正这个问题,输出仍然需要采用货币格式。

提前谢谢

2 个答案:

答案 0 :(得分:1)

嗯,一个选项是order by原始值:

order by Sum([CombineTables].[Total Extended Price])

如果由于某种原因无法做到这一点所有内容都具有相同的格式,请使用此技巧:

order by len(TotalExtendedPrice), TotalExtendedPrice

(或无论列是什么)。

您可以使用此技巧处理小数:

order by len(TotalExtendedPrice) - iif(TotalExtendedPrice like '*.*',  3, 0),
         TotalExtendedPrice

答案 1 :(得分:1)

我认为它正在将它作为一个字符串处理/排序,你应该为Sum([CombineTables].[Total Extended Price])添加另一个“列”并对其进行排序。在查询设计器中,您可以选中/取消选中一个框以在输出iirc

中显示它