Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数学函数添加到SQL查询_Sql_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

将数学函数添加到SQL查询

将数学函数添加到SQL查询,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,SQL新手,我正在尝试运行一个查询,该查询提取我们所有的商品代码、批号和现有数量 由于调整,每个批号有多个条目。我需要一种方法来运行我的查询,并让它加或减,以获得每批的实际手头数量,只显示我的很多是在负数。我试过玩SSR,但我做不好。我使用的是SQL 2008R2 SELECT IMLAYER.ITEM_CODE ,IMMSTR.ITEM_DESC ,IMLAYER.LOT_NO ,IMLAYER.QTY_ON_HAND FROM IMLAYER INNER JOIN IMMS

SQL新手,我正在尝试运行一个查询,该查询提取我们所有的商品代码、批号和现有数量

由于调整,每个批号有多个条目。我需要一种方法来运行我的查询,并让它加或减,以获得每批的实际手头数量,只显示我的很多是在负数。我试过玩SSR,但我做不好。我使用的是SQL 2008R2

SELECT
  IMLAYER.ITEM_CODE
 ,IMMSTR.ITEM_DESC
 ,IMLAYER.LOT_NO
 ,IMLAYER.QTY_ON_HAND
FROM
  IMLAYER
INNER JOIN
  IMMSTR
    ON
    IMLAYER.ITEM_CODE = IMMSTR.ITEM_CODE
WHERE
  (IMLAYER.QTY_ON_HAND < 0);
选择
IMLAYER.ITEM_代码
,IMMSTR.ITEM_DESC
,IMLAYER.LOT\u编号
,IMLAYER.QTY\u现存量
从…起
伊姆莱尔
内连接
IMMSTR
在…上
IMLAYER.ITEM\u代码=IMMSTR.ITEM\u代码
哪里
(IMLAYER.QTY\U现存量<0);

我相信我正确理解了这些要求,但如果没有,请发表评论,我可以更新查询:

SELECT
    M.ITEM_CODE
   ,M.ITEM_DESC
   ,L.LOT_NO
   ,'SUM_OF_QTY_ON_HAND' = SUM(L.QTY_ON_HAND)
FROM
    IMLAYER L
INNER JOIN
    IMMSTR M
    ON L.ITEM_CODE = M.ITEM_CODE
GROUP BY
    M.ITEM_CODE
    ,M.ITEM_DESC
    ,L.LOT_NO
HAVING
    SUM(L.QTY_ON_HAND) < 0
选择
M.ITEM_代码
,M.ITEM_DESC
,L.地段编号
,“现有数量之和”=现有数量之和
从…起
伊姆莱尔
内连接
immstrm
关于L.ITEM_代码=M.ITEM_代码
分组
M.ITEM_代码
,M.ITEM_DESC
,L.地段编号
有
总和(手头数量)<0

拥有
是您希望能够使用聚合函数进行过滤的技巧。

您好,我们需要预期的结果和数据样本。但我认为您可以通过GROUPBY子句和聚合函数(如
SUM()
)找到一些解决方案。您的问题不清楚您想做什么。这是一个获取想法的好地方。我们还需要一些样本数据等。请查看您应该发布的内容。因此,您希望对所有现有数量进行求和,但只返回求和为负数的记录?我想这是为了补充库存?谢谢。很抱歉,我无法更好地解释,但您的解决方案非常有效。没问题。我来自会计/ERP软件的背景,因此我熟悉这类项目。