在使用INSERT语句执行查询之前,我尝试创建一个可以快速插入数据的查询,我构建了一个包含SELECT SUM CASE和INNER JOIN的查询。
我的代码包含错误。这是我的代码:
SELECT pkg_guru.id_pkg ,
pkg_guru.id_guru ,
guru.nama_guru ,
guru.mapel_diampu ,
pkg_guru.id_penilai ,
penilai.nama_penilai ,
pkg_guru.tahun ,
pkg_guru.sem ,
pkg_guru.kompetensi
SUM(CASE WHEN pkg_guru.kompetensi = "1" THEN pkg_guru.jawaban
ELSE 0
END) AS nilaikp1 ,
SUM(CASE WHEN pkg_guru.kompetensi = "2" THEN pkg_guru.jawaban
ELSE 0
END) AS nilaikp2 ,
SUM(CASE WHEN pkg_guru.kompetensi = "3" THEN pkg_guru.jawaban
ELSE 0
END) AS nilaikp3 ,
SUM(CASE WHEN pkg_guru.kompetensi = "4" THEN pkg_guru.jawaban
ELSE 0
END) AS nilaikp4 ,
SUM(pkg_guru.jawaban) AS total_skor
FROM pkg_guru
INNER JOIN guru ON pkg_guru.id_guru = guru.id_guru
INNER JOIN penilai ON pkg_guru.id_penilai = penilai.id_penilai
GROUP BY pkg_guru.id_pkg ,
pkg_guru.id_guru ,
guru.nama_guru ,
guru.mapel_diampu ,
pkg_guru.id_penilai ,
penilai.nama_penilai
你能告诉我这个查询代码有什么问题吗?
答案 0 :(得分:1)
pg.kompetensi
后有一个逗号丢失,但您还没有在GROUP BY
中包含所有必填列:
SELECT pg.id_pkg ,
pg.id_guru ,
g.nama_guru ,
g.mapel_diampu ,
pg.id_penilai ,
p.nama_penilai ,
pg.tahun ,
pg.sem ,
pg.kompetensi ,
SUM(CASE WHEN pg.kompetensi = "1" THEN pg.jawaban
ELSE 0
END) AS nilaikp1 ,
SUM(CASE WHEN pg.kompetensi = "2" THEN pg.jawaban
ELSE 0
END) AS nilaikp2 ,
SUM(CASE WHEN pg.kompetensi = "3" THEN pg.jawaban
ELSE 0
END) AS nilaikp3 ,
SUM(CASE WHEN pg.kompetensi = "4" THEN pg.jawaban
ELSE 0
END) AS nilaikp4 ,
SUM(pg.jawaban) AS total_skor
FROM pkg_guru pg
INNER JOIN guru g ON pg.id_guru = g.id_guru
INNER JOIN penilai p ON pg.id_penilai = p.id_penilai
GROUP BY pg.id_pkg ,
pg.id_guru ,
g.nama_guru ,
g.mapel_diampu ,
pg.id_penilai ,
p.nama_penilai ,
pg.tahun ,
pg.sem ,
pg.kompetensi
答案 1 :(得分:0)
你在第三行myVariable->z
之后错过了逗号。 pkg_guru.kompetensi
部分pkg_guru.tahun,pkg_guru.sem,pkg_guru.kompetensi
。