将数学函数添加到SQL查询
SQL新手,我正在尝试运行一个查询,该查询提取我们所有的商品代码、批号和现有数量 由于调整,每个批号有多个条目。我需要一种方法来运行我的查询,并让它加或减,以获得每批的实际手头数量,只显示我的很多是在负数。我试过玩SSR,但我做不好。我使用的是SQL 2008R2将数学函数添加到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
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软件的背景,因此我熟悉这类项目。