INSNER语句使用INNER JOIN SELECT SUM

时间:2015-06-18 09:30:30

标签: mysql sql sql-server join

在使用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

你能告诉我这个查询代码有什么问题吗?

2 个答案:

答案 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