Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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/81.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 将分离Where子句应用于分离列(SQL)_Mysql_Sql_Select_Where Clause - Fatal编程技术网

Mysql 将分离Where子句应用于分离列(SQL)

Mysql 将分离Where子句应用于分离列(SQL),mysql,sql,select,where-clause,Mysql,Sql,Select,Where Clause,是否有可能以一种过于简单的方式沿着这些路线做一些事情。我知道这没有道理,但这正是我想尝试做的: SELECT SUM(T.SALES) WHERE T.YEAR = '2018' , SUM(T.SALES) WHERE T.YEAR = '2019' FROM TABLE1 AS T 我想到的一个较长的方法是: SELECT (SELECT SUM(T.SALES) FROM TABLE1 AS T WHERE T.YEAR = '2018') AS "201

是否有可能以一种过于简单的方式沿着这些路线做一些事情。我知道这没有道理,但这正是我想尝试做的:

SELECT 
   SUM(T.SALES) WHERE T.YEAR = '2018'
,  SUM(T.SALES) WHERE T.YEAR = '2019'    
FROM TABLE1 AS T
我想到的一个较长的方法是:

SELECT
  (SELECT SUM(T.SALES) FROM TABLE1 AS T WHERE T.YEAR = '2018') AS "2018 TOTAL SALES"
 ,(SELECT SUM(T.SALES) FROM TABLE1 AS T WHERE T.YEAR = '2019') AS "2019 TOTAL SALES"
但这并没有真正意义。它实现了我希望它在MySQL中实现的功能,但它不是一种标准化的方法。这方面的任何帮助都会非常好


我基本上希望返回2列(总销售额),但每个列都有自己的单独过滤器(按年份过滤,一个在2018年过滤,另一个在2019年过滤),如果这是一种简单的方法。

是的,您可以根据以下条件进行计算:

SELECT   
, SUM(case when T.YEAR = '2018' then T.SALES end) "2018 TOTAL SALES"
, SUM(case when T.YEAR = '2019' then T.SALES end) "2019 TOTAL SALES"
FROM TABLE1 AS T

是的,您可以根据以下条件进行计数:

SELECT   
, SUM(case when T.YEAR = '2018' then T.SALES end) "2018 TOTAL SALES"
, SUM(case when T.YEAR = '2019' then T.SALES end) "2019 TOTAL SALES"
FROM TABLE1 AS T

值得解释的是,
CASE
表达式的工作方式是,如果没有匹配项,它将返回NULL,而NULL通常会被SUM()等聚合函数忽略。@BillKarwin感谢您的解释,非常感谢。正是我要找的!值得解释的是,
CASE
表达式的工作方式是,如果没有匹配项,它将返回NULL,而NULL通常会被SUM()等聚合函数忽略。@BillKarwin感谢您的解释,非常感谢。正是我要找的!