【发布时间】:2017-06-14 15:52:18
【问题描述】:
我正在尝试构建一个查询,但被困在这个我收到错误的地方:“将数据类型 varchar 转换为数字时出错。”
代码如下:
SELECT convert(numeric,convert(decimal(7,4),
(
(SELECT SUM(pn.etiliquido-pn.qtt*pn.epcusto) from pn where (pn.fdata BETWEEN '2016-01-01' AND '2016-06-08') and
(pn.usr1 not like '%'+'Portes'+'%') and (no like '517936') and (pn.epcusto > '0')))
/
(SELECT SUM((pn.etiliquido)) from pn where (pn.fdata BETWEEN '2017-01-01' AND '2017-06-08') and
(pn.usr1 not like '%'+'Portes'+'%') and (no like '517936') and (pn.epcusto > '0')) *100 +'%'))
as Rentabilidade
我正在调用的所有表都没有 varchar 数据,我没有得到我做错了什么......
【问题讨论】:
-
X like 'varchar'要求将X转换为 varchar 以进行比较。 -
你为什么要嵌套这么多对
CONVERT的调用?除此之外,错误可能发生在您将数字视为字符串的任何地方,反之亦然。 -
好吧,没有转换的结果类似于:9662200.3200001,我希望它输出类似:9662200,32€ 我在其他选择中这样做了,但具体来说,没有t 似乎工作不知道为什么...
标签: sql-server tsql type-conversion numeric varchar