【问题标题】:Operand Error Message when Summing columns汇总列时的操作数错误消息
【发布时间】:2019-10-18 22:03:14
【问题描述】:

我的查询中有以下语句,我收到一个错误:

 SUM(isnull((T1.RecvQty),0)) '3rd Party Received Qty',
 SUM(isnull((T0.Quantity-T0.Quantout),0)) 'SAP Onhand',  
 SUM(isnull((T1.recvQty),0)- isnull((T0.Quantity-T0.QuantOut),0)) as 'Varience',

错误:

消息 8117,第 16 层,状态 1,第 26 行
操作数数据类型 nvarchar 对 sum 运算符无效。

【问题讨论】:

  • 请标记您正在使用的数据库。
  • 这是一个 TSQL 数据库

标签: sql sql-server


【解决方案1】:

错误应该很明显。

根据错误消息,我假设您使用的是 SQL Server。只需使用try_convert()

SUM(TRY_CONVERT(NUMERIC(20, 4), T1.RecvQty)) as [3rd Party Received Qty],

我猜测该值的有效数字表示。

编辑:

如果您不想返回NULL,则在聚合之后使用COALESCE()

COALESCE(SUM(TRY_CONVERT(NUMERIC(20, 4), T1.RecvQty)), 0)

这通常没有必要,因为SUM() 会忽略NULL 值。

【讨论】:

  • 感谢您的回复。这个问题是空值作为空值返回。我在公式中有 isnull,因此如果值为 null,则返回 0。我需要将 null 返回为 0 以正确计算方差。
猜你喜欢
  • 2014-05-31
  • 2012-01-18
  • 1970-01-01
  • 2016-02-06
  • 2010-10-02
  • 2016-12-09
  • 2020-07-27
  • 2021-09-10
  • 2016-07-31
相关资源
最近更新 更多