我正在尝试编写一个SQLStatement来从表中返回最大值。它适用于SQL Server,但Microsoft Access仅根据第一个数字(而不是整数)对值进行排序,从而返回错误的元组。
SELECT TOP 1 [Currency Code], [Relational Exch_ Rate Amount]
from [CRONUS Sverige AB$Currency Exchange Rate]
ORDER BY [Relational Exch_ Rate Amount] DESC
所以正确答案应该返回: GBP | 1354.xxx
在访问中我得到: HKD | 97.xxx
我也试过
SELECT [Currency Code], MAX([Relational Exch_ Rate Amount])
FROM [CRONUS Sverige AB$Currency Exchange Rate]
它只适用于MAX(columnName),但是当我在前面/之后添加[Currency Code]时它只返回错误的值。
编辑:似乎Access正在用字母而不是实际数字对数值进行排序。我试图找到一种方法来改变它 - 但没有结果。任何意见都表示赞赏。
答案 0 :(得分:0)
如何放置GROUP BY
SELECT [Currency Code], MAX([Relational Exch_ Rate Amount])
FROM [CRONUS Sverige AB$Currency Exchange Rate]
GROUP BY [Currency Code]
答案 1 :(得分:0)
在分组和订购后选择前1名可以得到你想要的东西
SELECT top 1 [Currency Code], MAX([Relational Exch_ Rate Amount])
FROM [CRONUS Sverige AB$Currency Exchange Rate]
GROUP BY [Currency Code]
order by MAX([Relational Exch_ Rate Amount]) desc
答案 2 :(得分:0)
我找到了解决方案。
诀窍是在我的SQL语句中使用Val([Relational Exch_ Rate Amount])来获取Access以识别数值。
现在好像它运转正常。
感谢所有支持