2017-02-15 7 views
0

さて、皆さん、映画がリリースされた月をすべてリストしてください。毎月何枚の映画がリリースされたかを表示する必要があります。だから私は2つの列を1つの月と1つの映画の数が必要です。MySQLがヌルに戻り、他の問題が発生しました

だから私のコードは、この

SELECT monthname(ReleaseDate) AS 'MONTHS', COUNT(*) 
FROM Mymovies 

のようですが、それはちょうど私の9月を見せています。私は何をすべきか?ここに私の値があります

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

'Revenue-Cost'列はどこにありますか? – CynePhoba12

+0

@ CynePhoba12これは列名ではなく、減算です。 – Barmar

+3

同じ質問に複数の問題を入れないでください。それぞれの問題は別々の質問でなければなりません。 – Barmar

答えて

0

最初のクエリでは、GROUP BYが必要ですので、各映画名の結果が得られます。

SELECT MovieName, 
MAX((Revenue-Cost)/Cost) AS 'RETURNS' 
FROM myMovies 
GROUP BY MovieName 

、総収入を得るSUM(Revenue)を使用するには:

SELECT SUM(Revenue) AS TotalIncome 
FROM myMOvies 
WHERE ReleaseDate BETWEEN '1990-01-01' AND '1999-12-31' 

RevenueCost列が数値である必要があり、どちらかINTまたはDECIMALタイプではなく、文字列。数字に余分な文字がある場合、MySQLは算術演算を実行できないため、$のような文字は使用しないでください。

+0

ありがとう、あなた!乾杯。 –

0

両方のクエリは近いですが、やや無効です。のは、クエリ1を見てみましょう:

SELECT MovieName, 
MAX((Revenue-Cost)/Cost) AS 'RETURNS' 
FROM myMovies; 

その後、問題はRevenue-Costは文字通り列として評価Revenue-Costと呼ばれているということです。減算を行うには、スペースを入れる必要があります。 2番目の(修正)クエリについては

SELECT MovieName, 
MAX((Revenue - Cost)/Cost) AS 'RETURNS' 
FROM myMovies GROUP BY MovieName 

:あなたは余分なコンマを追加したよう

SELECT ReleaseDate, MovieName 
From myMovies WHERE, 
ReleaseDate BETWEEN '1990-01-01' AND '1999-12-31' 

あなたは、エラーになりますまた、GROUP BY文が必要です。総収入を得るには、収益の行の合計だけです。

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

希望すると、これが役に立ちます。

+0

それは、ありがとう! –