【问题标题】:SQL varchar to numeric error, with no varchar fields envolvedSQL varchar 到数字错误,没有涉及 varchar 字段
【发布时间】: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


【解决方案1】:

嗯,谢谢。只需删除 2 括号,我一开始就设法做我想做的事。猜猜我隔离了错误的变量是什么问题。

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 2011-01-07
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    相关资源
    最近更新 更多