我刚刚开始使用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
有人可以帮我理解我做错了吗?
答案 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'