为什么说列定义不明确?

时间:2018-09-23 07:04:03

标签: sql oracle oracle11g ora-00918

select a.id_progdi, a.nama_progdi, avg(b.ipk)  
from tb_ipk b 
join tb_mahasiswa c on b.nim = c.nim 
join tb_progdi a on c.id_progdi = a.id_progdi  
group by id_progdi

3 个答案:

答案 0 :(得分:3)

您有多个id_progdi,因此很可能不知道在group by中要引用哪个。将其更改为group by a.id_progdi

答案 1 :(得分:1)

在您的分组依据中,应添加表别名,因为在多个表中具有相同的列名,并且数据库引擎需要知道要引用的位置

    select a.id_progdi, a.nama_progdi, avg(b.ipk)  
    from tb_ipk b
    join  tb_mahasiswa c  on b.nim = c.nim 
    join tb_progdi a on c.id_progdi = a.id_progdi  
    group by a.id_progdi, a.nama_progdi

答案 2 :(得分:0)

也许您在多个表中都有id_progdi,在您的分组依据中使用表别名。