Mysql 检查条件时出现SQL CASE语句错误
场景是我有两列,一列是数量,另一列是类型。现在我要做的是检查type是否为“rec”,然后从quantity中获取所有值并添加它们,如果type为“issue”,则它将仅获取类型为receive的字段,并根据项目ID将它们全部添加。我编写的SQL查询如下:Mysql 检查条件时出现SQL CASE语句错误,mysql,sql,case,Mysql,Sql,Case,场景是我有两列,一列是数量,另一列是类型。现在我要做的是检查type是否为“rec”,然后从quantity中获取所有值并添加它们,如果type为“issue”,则它将仅获取类型为receive的字段,并根据项目ID将它们全部添加。我编写的SQL查询如下: SELECT f.`Itemm_ID`,ABS(SUM(f.`Quantity`)) AS recieving, TYPE , (CASE WHEN f.`Type` = 'issue' THEN ABS(SUM(f.`Quantity`
SELECT f.`Itemm_ID`,ABS(SUM(f.`Quantity`)) AS recieving, TYPE ,
(CASE
WHEN f.`Type` = 'issue'
THEN ABS(SUM(f.`Quantity`))
END)
FROM stock_journal AS f
WHERE f.`Itemm_ID`='1'
现在的情况是,除了返回null的CASE语句外,其他一切都正常工作。
请帮我解决我的问题。谢谢您是否检查了
大小写的语法
我想您在查询中缺少了其他
部分
例如:-
检查语法您似乎需要输入
SELECT f.`Itemm_ID`,
ABS(SUM(f.`Quantity`)) AS recieving,
TYPE,
ABS(SUM(CASE WHEN f.`Type` = 'issue'
THEN f.`Quantity`
ELSE 0
END))
FROM stock_journal AS f
WHERE f.`Itemm_ID`='1'
PS.f.数量
可能为负数吗?如果没有,则ABS()
过量。如果可能的话,ABS()
必须包裹内部f.Quantity
,而不是整个SUM()
PPS<输出中的代码>类型在形式上不正确(与仅\u FULL\u GROUP\u BY
相矛盾),我建议使用任意值()将其包装起来
我没有收到你推荐的有价值的包装类型,请你详细说明一下
我的意思是(也许,我不确定)你需要
我检查过了,仍然没有工作数量也可以是负数。而且我没有收到您关于包装类型的建议,请您详细说明。@smartF更新。收到了,谢谢。case
expression。
SELECT f.`Itemm_ID`,
ABS(SUM(f.`Quantity`)) AS recieving,
TYPE,
ABS(SUM(CASE WHEN f.`Type` = 'issue'
THEN f.`Quantity`
ELSE 0
END))
FROM stock_journal AS f
WHERE f.`Itemm_ID`='1'
SELECT f.`Itemm_ID`,
SUM(ABS(f.`Quantity`)) AS recieving,
TYPE,
SUM(CASE WHEN f.`Type` = 'issue'
THEN ABS(f.`Quantity`)
ELSE 0
END)
FROM stock_journal AS f
WHERE f.`Itemm_ID`='1'