Sql server 关于SQL算术函数的问题

Sql server 关于SQL算术函数的问题,sql-server,sql-server-2005,Sql Server,Sql Server 2005,你能告诉我我做错了什么吗?尝试在SQLServer2005SELECT语句中使用减法。这里有一些语法错误 isnull(dbo.udf_GetInventory(ga.sku,@date4),0) * costprice - isnull(dbo.udf_GetInventory(ga.sku,@date3),0) * costprice as date2_diff 如果出现以下情况,则此处不存在语法错误: 您将语句放在SELECT。。。来自佐治亚州 ga是一个表,其中包含某些数字数据类

你能告诉我我做错了什么吗?尝试在SQLServer2005
SELECT
语句中使用减法。这里有一些语法错误

isnull(dbo.udf_GetInventory(ga.sku,@date4),0) * costprice - 
isnull(dbo.udf_GetInventory(ga.sku,@date3),0) * costprice  as  date2_diff

如果出现以下情况,则此处不存在语法错误:

  • 您将语句放在SELECT。。。来自佐治亚州
  • ga是一个表,其中包含某些数字数据类型的sku和costprice列
  • 您有一个名为udf_getinventory的标量值函数,它接受两个参数
  • udf_getinventory的第一个参数的数据类型与ga.sku的数据类型匹配
  • 第二个参数的数据类型与@date3的数据类型匹配
  • udf_getinventory返回一些数字数据类型
  • @Date3在SELECT语句之前声明
  • @Date4在SELECT语句之前声明

  • 如果出现以下情况,则此处不存在语法错误:

  • 您将语句放在SELECT。。。来自佐治亚州
  • ga是一个表,其中包含某些数字数据类型的sku和costprice列
  • 您有一个名为udf_getinventory的标量值函数,它接受两个参数
  • udf_getinventory的第一个参数的数据类型与ga.sku的数据类型匹配
  • 第二个参数的数据类型与@date3的数据类型匹配
  • udf_getinventory返回一些数字数据类型
  • @Date3在SELECT语句之前声明
  • @Date4在SELECT语句之前声明

  • 不确定是否有语法错误,但假设udf_GetInventory是非确定性的,则每次都会得到0…

    不确定是否有语法错误,但是假设udf_GetInventory是不确定的,那么每次都会得到0…

    错误是什么?你的意思是有两个不同的@date变量吗?为什么不用0替换所有这些?这就是结果。即使操作顺序可能是正确的,出于维护原因,最好使用括号,以便将来的维护人员知道您想要的顺序。select(isnull(dbo.udf\u GetInventory(ga.sku,@date4),0)*costprice)-(isnull(dbo.udf\u GetInventory(ga.sku,@date3),0)*costprice)是我期望您要做的,但不确定。错误是什么?您的意思是有两个不同的@date变量吗?为什么不将所有这些都替换为0?这就是结果。即使操作顺序可能是正确的,出于维护原因,最好使用括号,以便将来的维护人员知道您想要的顺序。选择(isnull(dbo.udf\u GetInventory(ga.sku,@date4),0)*costprice)-(isnull(dbo.udf\u GetInventory(ga.sku,@date3),0)*costprice)是我期望您会选择的,但不确定。