Sql 尝试转换货币类型时缺少表达式错误

Sql 尝试转换货币类型时缺少表达式错误,sql,Sql,我想将我表格中的总价输出分别显示为美元20.00美元或欧元40美元。 我厌倦了下面的代码,得到了缺少的表达式错误。 如何将其转换为指定格式? “价格”列的数据类型为数字。 我的代码在这里 select convert(varchar(50),convert(money, coalesce(sum(nvl(CASE WHEN (typ=27 and l.tyt ='USD') THEN 'USD' + PRICE WHEN (typ=27 and l.tyt='EURO') THE

我想将我表格中的总价输出分别显示为美元20.00美元或欧元40美元。 我厌倦了下面的代码,得到了缺少的表达式错误。 如何将其转换为指定格式? “价格”列的数据类型为数字。 我的代码在这里

select convert(varchar(50),convert(money, coalesce(sum(nvl(CASE
    WHEN (typ=27 and l.tyt ='USD') THEN 'USD' + PRICE
    WHEN (typ=27 and l.tyt='EURO') THEN 'EURO'+ PRICE
    END,0)),0)),1) as Total from transactions;

提前谢谢

这个表达式有几个地方不对劲。1) 将字符串值('USD'/'EURO')添加到数值(价格),2)不同数据类型上的NVL(),3)字符串数据上的SUM()。其中任何一个都可能是错误的原因

如果表中存储了不同计价的价格,则无法将它们相加到行中-您希望结果中包含哪一个(欧元或美元)。如果您希望将这两行都放在两行中,那么以下选项应该可以使用(请注意,在原始语句中,别名l未定义,因此不太可能使用):

或者干脆

SELECT tyt, Sum(price) as Total
FROM transactions
WHERE typ=27
GROUP BY tyt

这个表达有几个地方不对劲。1) 将字符串值('USD'/'EURO')添加到数值(价格),2)不同数据类型上的NVL(),3)字符串数据上的SUM()。其中任何一个都可能是错误的原因

如果表中存储了不同计价的价格,则无法将它们相加到行中-您希望结果中包含哪一个(欧元或美元)。如果您希望将这两行都放在两行中,那么以下选项应该可以使用(请注意,在原始语句中,别名l未定义,因此不太可能使用):

或者干脆

SELECT tyt, Sum(price) as Total
FROM transactions
WHERE typ=27
GROUP BY tyt