0

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

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 对这些进行排名,我认为排序是最简单的方法。你知道如何纠正这个问题吗,输出仍然需要采用货币格式。

先感谢您

4

2 回答 2

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
于 2013-03-29T21:48:46.610 回答
1

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

于 2013-03-29T22:03:04.290 回答