所以我似乎无法弄清楚如何使用子查询显示我正在加入的列。
SELECT INSTRUCTOR, count(case when grade = 'A' then 1 end) totalA
FROM Grade_report AS gr, Section
WHERE Section.SECTION_ID=gr.SECTION_ID
AND (gr.GRADE='A')
GROUP by INSTRUCTOR ORDER by totalA DESC
我还想选择SECTION_ID并显示它。但它说当我把它放在选择行中时,不明确的列名称为'SECTION_ID'。
非常感谢任何帮助。谢谢。
答案 0 :(得分:1)
这个怎么样
SELECT INSTRUCTOR, gr.SECTION_ID, count(case when grade = 'A' then 1 end) totalA
FROM Grade_report AS gr, Section
WHERE Section.SECTION_ID=gr.SECTION_ID
AND (gr.GRADE='A')
GROUP by INSTRUCTOR, gr.SECTION_ID
ORDER by totalA DESC
由于两个表中的列名相同,因此必须指定表名(或别名)以避免歧义(这是错误试图告诉您的内容)。您还必须将新列包含在GROUP BY子句中。
答案 1 :(得分:1)
选择gr.SECTION_ID或Section.SECTION_ID;编译器不知道选择哪一个。