操作数数据类型varchar对除运算符无效

时间:2016-05-11 07:19:43

标签: sql sql-server

我刚刚开始使用SQL,我有一个非常基本的问题:

我试过划分2列(金额/费率) - 我将它们从“钱”中转换出来。到' INT'但当我尝试执行时,它给了我这个错误:

  

操作数数据类型varchar对除运算符无效。

这是我输入的查询:

select referenceid, 
       CONVERT(decimal(15,3), sellamount) as 'amount', 
       convert(decimal(15,3), rateactual) as 'Rate',
       convert(decimal(15,3),'amount' / 'rate') as 'local amount'
FROM currencyfxconversions

有人可以帮我理解我做错了吗?

3 个答案:

答案 0 :(得分:5)

试试这个,

SELECT referenceid
    ,CONVERT(DECIMAL(15, 3), sellamount) AS 'amount'
    ,convert(DECIMAL(15, 3), rateactual) AS 'Rate'
    ,convert(DECIMAL(15, 3), (CONVERT(DECIMAL(15, 3), sellamount) / convert(DECIMAL(15, 3), rateactual))) AS 'local amount'
FROM currencyfxconversions

答案 1 :(得分:0)

在上面的查询"转换(十进制(15,3),'金额' /'率')"必须更换     转换(CONVERT(十进制(15,3),sellamount)/转换(十进制(15,3),rateactual))

答案 2 :(得分:0)

您的错误是使用您在相同上下文中使用的列。您不能在选择上下文中将别名用作表列。你必须重复最后的别名查询。

SELECT referenceid
,CONVERT(DECIMAL(15, 3), sellamount) AS 'amount'
,convert(DECIMAL(15, 3), rateactual) AS 'Rate'
,convert(DECIMAL(15, 3), (CONVERT(DECIMAL(15, 3), sellamount) / convert(DECIMAL(15, 3), rateactual))) AS 'local amount'