MySQL返回null并引发其他问题

MySQL返回null并引发其他问题,mysql,Mysql,好了,伙计们,我需要找到电影发行的月份列表。我需要显示每个月有多少部电影发行。所以我需要两个专栏,一个是月,一个是电影数量 所以我的代码是这样的 SELECT monthname(ReleaseDate) AS 'MONTHS', COUNT(*) FROM Mymovies 但这只是给我看九月。我该怎么办?这是我的价值观 ( MovieName VARCHAR(20), ReleaseDate DATE, Cost INT (10), Revenue INT (10) ); 在第一个查询

好了,伙计们,我需要找到电影发行的月份列表。我需要显示每个月有多少部电影发行。所以我需要两个专栏,一个是月,一个是电影数量

所以我的代码是这样的

SELECT monthname(ReleaseDate) AS 'MONTHS', COUNT(*)
FROM Mymovies
但这只是给我看九月。我该怎么办?这是我的价值观

(
MovieName VARCHAR(20),
ReleaseDate DATE,
Cost INT (10),
Revenue INT (10) 
);

在第一个查询中,您需要
groupby
,以便获得每个电影名称的结果

SELECT MovieName,
MAX((Revenue-Cost)/Cost) AS 'RETURNS'
FROM myMovies
GROUP BY MovieName
要获得总收入,请使用
总和(收入)


Revenue
Cost
列应该是数字,可以是
INT
DECIMAL
类型,而不是字符串。它们不应该包含像
$
这样的字符,因为当数字包含像这样的无关字符时,MySQL无法执行算术。

两个查询都很接近,但稍微无效。让我们从查询一开始:

SELECT MovieName,
MAX((Revenue-Cost)/Cost) AS 'RETURNS'
FROM myMovies;
然后问题是,
Revenue-Cost
被评估为一列,字面上称为
Revenue-Cost
。要进行减法运算,需要包含一个空格。您还需要一个
groupby
语句:

SELECT MovieName,
MAX((Revenue - Cost)/Cost) AS 'RETURNS'
FROM myMovies GROUP BY MovieName
关于你的第二个(修改的)查询:

您将有一个错误,因为您添加了一个额外的逗号。要获得总收入,它只是收入行的总和:

SELECT SUM(Revenue)
From myMovies WHERE
ReleaseDate BETWEEN '1990-01-01' AND '1999-12-31'

希望这有帮助

收入成本列在哪里?@cynepoba12这不是一个列名称,它是一个减法。不要在同一个问题中提出多个问题。每个问题都应该是一个单独的问题。您的第一个查询看起来不错。如果
Cost
0
,它将只返回
NULL
,因为你不能除以零。你需要在第一次查询中
groupbymoviename
,以获得每部电影的最大利润。
SELECT ReleaseDate, MovieName
From myMovies WHERE,
ReleaseDate BETWEEN '1990-01-01' AND '1999-12-31'
SELECT SUM(Revenue)
From myMovies WHERE
ReleaseDate BETWEEN '1990-01-01' AND '1999-12-31'