Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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/75.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_Mysql_Sql - Fatal编程技术网

Mysql 返回错误总数的SQL

Mysql 返回错误总数的SQL,mysql,sql,Mysql,Sql,我有这个数据库: 我有一个sql:(适用于黑白) 我的问题是:这个SQL只返回了“白色”的错误总数。见下面的结果: 对于所有列,White的结果应为“13”。我试图找到解决办法,但没有一个对我有效。我也想知道我是否做错了什么。希望你们能帮我解决这个问题。问题是第一个子查询中缺少括号和(缺少)运算符优先级: WHERE Color = 'White' AND Action = 'Add' OR Action = 'Transfer Location' 你可能希望这样 WHERE

我有这个数据库:

我有一个sql:(适用于黑白)

我的问题是:这个SQL只返回了“白色”的错误总数。见下面的结果:


对于所有列,
White
的结果应为“13”。我试图找到解决办法,但没有一个对我有效。我也想知道我是否做错了什么。希望你们能帮我解决这个问题。

问题是第一个子查询中缺少括号和(缺少)运算符优先级:

WHERE Color = 'White' 
    AND Action = 'Add' OR Action = 'Transfer Location' 
你可能希望这样

WHERE Color = 'White' 
    AND ( Action = 'Add' OR Action = 'Transfer Location' )
而数据库将其解释为

WHERE ( Color = 'White' AND Action = 'Add' )
    OR Action = 'Transfer Location' 

问题是第一个子查询中缺少括号和(缺少)运算符优先级:

WHERE Color = 'White' 
    AND Action = 'Add' OR Action = 'Transfer Location' 
你可能希望这样

WHERE Color = 'White' 
    AND ( Action = 'Add' OR Action = 'Transfer Location' )
数据库将其解释为

WHERE ( Color = 'White' AND Action = 'Add' )
    OR Action = 'Transfer Location' 
你可以试试这个

SELECT  COLOR, 
   SUM( CASE WHEN ACTION IN ('Add', 'Transfer Location') THEN XS ELSE -XS END ) AS SUM_XS
FROM BNG
WHERE ACTION IN  ('Add', 'Transfer Location', 'Used/ Damaged')
GROUP BY COLOR
或其他版本(避免重复案例…):

你可以试试这个

SELECT  COLOR, 
   SUM( CASE WHEN ACTION IN ('Add', 'Transfer Location') THEN XS ELSE -XS END ) AS SUM_XS
FROM BNG
WHERE ACTION IN  ('Add', 'Transfer Location', 'Used/ Damaged')
GROUP BY COLOR
或其他版本(避免重复案例…):



你能指定求和的变量是什么吗?假设我有一个公式:x=addWhite y=transWhite z=getWhite x+y-z=resultI Ti Think你最好在你的活动中使用一个CASE station来确定你是想增加还是减少聚合。请阅读并接受answer@a_horse_with_no_name我在用MySQL,你呢指定求和的变量是什么?假设我有一个公式:x=addWhite y=transWhite z=getWhite x+y-z=resultI tyhink您最好在活动中使用CASE station来确定是否要增加或减少聚合。请阅读并接受answer@a_horse_with_no_name我在用MySQL我很抱歉真是让人困惑,这和我在“黑色”中使用的代码是一样的,很好用。你也需要求SM的和吗?明白了!非常感谢@JiriIt只对“黑色”有效,因为州“中转地点”中没有“白色”。如果您更改数据以包含该数据,您将看到“黑色”的代码也被破坏。很抱歉,这真的很混乱,这与我用于“黑色”的代码相同,工作正常。您还需要求SM的和吗?明白了!非常感谢@JiriIt只对“黑色”有效,因为州“中转地点”中没有“白色”。如果您更改数据以包含该信息,您将看到“Black”的代码也被破坏。但是@Jiri可以很好地解释为什么您的查询不起作用。@richelle:您知道您只能投票一个问题吗?不,对不起。我一直在努力寻找答案,这就是为什么。重要的是,你选择了你认为对你来说是正确的答案(一个也是唯一一个)。你可以改变你的决定,并标记你喜欢的答案(任何一个)。但是@Jiri可以很好地解释为什么你的查询不起作用。@richelle:你知道你只可以投票一个问题吗?不,对不起。我一直在努力寻找答案,这就是为什么。重要的是,你选择了你认为对你来说是正确的答案(一个也是唯一一个)。你可以改变你的决定,并标出你喜欢的答案(任何一个)。