Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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/5/sql/85.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
Mysql 检查条件时出现SQL CASE语句错误_Mysql_Sql_Case - Fatal编程技术网

Mysql 检查条件时出现SQL CASE语句错误

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`

场景是我有两列,一列是数量,另一列是类型。现在我要做的是检查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`))
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'