多行货币转换逻辑

时间:2013-05-19 04:56:00

标签: tsql currency

我对货币转换逻辑有疑问。目前,我们返回一个有很多货币字段的结果集。现在,要求说用户应该可以选择输出货币格式

例如:

Account name | Actual Amount | Estimated Amount | Target Amount
XYZ          | $ 2000        | $ 456.78         | $ 890.45
ABC          | SD 2000       | SD 456.78        | SD 890.45

如果用户现在选择Yen作为输出格式,则结果集应为

Account name | Actual Amount | Estimated Amount | Target Amount
XYZ          | ¥ 2233        | ¥ 42356.78       | ¥ 82390.45
ABC          | ¥ 21213000    | ¥ 41156.78       | ¥ 82390.45

汇率可用,我知道我们可以在select语句中调用函数来转换货币列。但是,对每条记录进行函数调用会增加执行时间。

是否有任何其他逻辑可用于改善执行时间。

1 个答案:

答案 0 :(得分:0)

当您使用函数进行转换时,您必须知道每个记录都将执行该函数。因此,当仅查看执行函数的开销时,您将拥有与记录一样多的执行次数。

您可以更好地制作转换表,将转化率放入其中,然后加入该表。确保您在转化率表和原始表中都有一个包含货币的列,您就可以开始使用了。在select语句中输出公式,例如rate * Actual Amount。