Mat*_*idd 2 sql database oracle
我是SQL的初学者,我一直在尝试锻炼几个小时,现在问题是:
SELECT COUNT (DISTINCT c.BAND_ID)Number_of_bands, COUNT(DISTINCT c.COMP_ID)"Total_Competitions",g.NAME GENRE_TYPE
FROM ENTERED_COMPS ec,COMPETITIONS c,GENRE g
WHERE c.COMP_ID = ec.COMP_ID
AND g.GENRE_ID = c.GENRE_ID
AND c.BAND_ID = b.BAND_ID
GROUP BY GENRE_TYPE
ORDER BY GENRE_TYPE ASC;
Oracle just comes up with the error
ORA-00904: "GENRE_TYPE": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 6 Column: 9
Run Code Online (Sandbox Code Playgroud)
这让我觉得GENRE.NAME列一定存在问题....名称不正确或拼写错误.然而事实并非如此......
我试图通过按字母顺序输出它们来分析比较流行的类型,并显示每种类型的比赛有多少以及有多少乐队进入每种类型的比赛.
为了使这更简单,这里是我的ERD的链接 - http://www.missingstudios.com/matt/ERD%20Logical.pdf
非常感谢支持!
尝试在你的group by和order by子句中留下别名
SELECT COUNT (DISTINCT c.BAND_ID) Number_of_bands,
COUNT(DISTINCT c.COMP_ID) Total_Competitions,
g.NAME GENRE_TYPE
FROM ENTERED_COMPS ec,COMPETITIONS c,GENRE g
WHERE c.COMP_ID = ec.COMP_ID
AND g.GENRE_ID = c.GENRE_ID
AND c.BAND_ID = b.BAND_ID
GROUP BY g.NAME
ORDER BY g.NAME ASC;
Run Code Online (Sandbox Code Playgroud)