这可能是一个简单的问题,但令人惊讶的是我没有找到适合这里的任何东西。我做了一个查询,我将数字格式化为货币。 具体做法是:
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对这些进行排名,我认为排序是最简单的方法。你知道如何纠正这个问题,输出仍然需要采用货币格式。
提前谢谢
答案 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