2011-12-08 14 views
0

ここに私の問題があります:最も出版された書籍を持つtitle_id、pubdate、およびmonthの名前(例: 'May')をリストします。 私はOracle 10g Expressを利用しています。キーワードから期待さは見られないがあることを私に言っているOracleではOracle SQL Moderatly Complex Caseクエリ

 SELECT count(EXTRACT(MONTH FROM pubdate)), title_id 
     CASE EXTRACT(MONTH FROM pubdate) 
WHEN 2 THEN 'February' 
WHEN 3 THEN 'March' 
WHEN 4 THEN 'April' 
WHEN 5 THEN 'May' 
WHEN 6 THEN 'June' 
WHEN 7 THEN 'July' 
WHEN 8 THEN 'August' 
WHEN 9 THEN 'September' 
WHEN 10 THEN 'October' 
WHEN 11 THEN 'November' 
WHEN 12 THEN 'December' 
END 
    FROM titles t, publishers p 
    WHERE t.pub_id=p.pub_id 
    AND pubdate in 
(select max(EXTRACT(MONTH FROM pubdate)) from titles group by t.title_id) 
GROUP BY t.title_id 
ORDER BY count(EXTRACT(MONTH FROM pubdate)); 

: はここに私のクエリです。どんな専門家もこれを見て、どこに間違っているのか教えていただけますか?

+0

可能重複(http://stackoverflow.com/questions/8407299/case-expressions-with-max-aggregate-functions-oracle) –

答えて

1

あなたはInstant SQL Formatter

を使用する場合は、より良いエラーメッセージ

EXTRACT(2,13)はトークン期待を取得興味深いことにtitle_id and Case

SELECT count(EXTRACT(MONTH FROM pubdate)), title_id , <----- comma needs to be here 
     CASE EXTRACT(MONTH FROM pubdate) 
WHEN 2 THEN 'February' 
WHEN 3 THEN 'March' 
WHEN 4 THEN 'April' 
WHEN 5 THEN 'May' 
WHEN 6 THEN 'June' 
WHEN 7 THEN 'July' 
WHEN 8 THEN 'August' 
WHEN 9 THEN 'September' 
WHEN 10 THEN 'October' 
WHEN 11 THEN 'November' 
WHEN 12 THEN 'December' 
END 

間にカンマが欠落しています: 。 )、FROM INTO

[MAX集合関数OracleとCASE式]の