#1064 - You have an error in your SQL syntax;

Mohon Bantuannya para suhu, di phpmyadmin server 1 aman, tp saat saya export dan hendak inport ke server 2 terjadi seperti ini??

DROP TABLE IF EXISTS `DAFTAR_PROSES_PAYROLL`;

CREATE ALGORITHM=UNDEFINED VIEW `DAFTAR_PROSES_PAYROLL`  AS SELECT replace(group_concat(distinct `d`.`id_payroll` separator ','),',','_') AS `id`, year(`a`.`cdt`) AS `thn`, CASE WHEN `a`.`bulan` = 'Januari' THEN 1 WHEN `a`.`bulan` = 'Februari' THEN 2 WHEN `a`.`bulan` = 'Maret' THEN 3 WHEN `a`.`bulan` = 'April' THEN 4 WHEN `a`.`bulan` = 'Mei' THEN 5 WHEN `a`.`bulan` = 'Juni' THEN 6 WHEN `a`.`bulan` = 'Juli' THEN 7 WHEN `a`.`bulan` = 'Agustus' THEN 8 WHEN `a`.`bulan` = 'September' THEN 9 WHEN `a`.`bulan` = 'Oktober' THEN 10 WHEN `a`.`bulan` = 'November' THEN 11 WHEN `a`.`bulan` = 'Desember' THEN 12 END AS `bln`, `a`.`bulan` AS `bulan`, group_concat(distinct `c`.`kode_rekening` separator ',') AS `kode_rekening`, sum(`a`.`jumlah_gaji`) AS `jumlah_gaji` FROM (((`sdi_payroll_detail` `a` join `sdi_mst_pegawai` `b` on(`a`.`id_pegawai` = `b`.`id`)) join `sdi_mst_jenis_pegawai` `c` on(`b`.`id_jenis` = `c`.`id_jenis`)) join `sdi_payroll` `d` on(`a`.`reff` = `d`.`reff`)) WHERE `d`.`status` = 'proses' GROUP BY year(`d`.`date`), CASE WHEN `a`.`bulan` = 'Januari' THEN 1 WHEN `a`.`bulan` = 'Februari' THEN 2 WHEN `a`.`bulan` = 'Maret' THEN 3 WHEN `a`.`bulan` = 'April' THEN 4 WHEN `a`.`bulan` = 'Mei' THEN 5 WHEN `a`.`bulan` = 'Juni' THEN 6 WHEN `a`.`bulan` = 'Juli' THEN 7 WHEN `a`.`bulan` = 'Agustus' THEN 8 WHEN `a`.`bulan` = 'September' THEN 9 WHEN `a`.`bulan` = 'Oktober' THEN 10 WHEN `a`.`bulan` = 'November' THEN 11 WHEN `a`.`bulan` = 'Desember' THEN 12 AS `ENDdesc` END

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS `ENDdesc` END' at line 1
avatar mriem24
@mriem24

1 Kontribusi 0 Poin

Diperbarui 1 bulan yang lalu

1 Jawaban:

Ini jawaban dari ChatGPT:

Kesalahan yang terjadi dalam query SQL berada pada penggunaan kata kunci AS dan END di dalam klausa GROUP BY. Kamu menempatkan AS ENDdesc di dalam pernyataan CASE. Syntax ini salah.

Dalam SQL, CASE merupakan pernyataan kondisional yang digunakan untuk melakukan seleksi nilai berdasarkan kondisi tertentu. Setiap pernyataan CASE harus diakhiri dengan kata kunci END. Jika Kamu nay memberikan alias atau nama lain untuk hasil dari pernyataan CASE, kamu harus menempatkan kata kunci AS setelah END.

Dalam kode kamu, seharusnya AS bln ditempatkan setelah END dari pernyataan CASE. Hal ini untuk memberikan alias bln untuk hasil yang diperoleh dari pernyataan CASE tersebut. Jadi, struktur umumnya akan seperti ini:

CASE
    WHEN kondisi1 THEN nilai1
    WHEN kondisi2 THEN nilai2
    -- lebih banyak kondisi jika diperlukan
END AS alias

Dengan memperbaiki penempatan AS dan END ini, query Anda akan berjalan dengan benar tanpa error sintaks.

DROP TABLE IF EXISTS `DAFTAR_PROSES_PAYROLL`;

CREATE ALGORITHM=UNDEFINED VIEW `DAFTAR_PROSES_PAYROLL` AS 
SELECT 
    REPLACE(GROUP_CONCAT(DISTINCT `d`.`id_payroll` SEPARATOR ','), ',', '_') AS `id`, 
    YEAR(`a`.`cdt`) AS `thn`, 
    CASE 
        WHEN `a`.`bulan` = 'Januari' THEN 1 
        WHEN `a`.`bulan` = 'Februari' THEN 2 
        WHEN `a`.`bulan` = 'Maret' THEN 3 
        WHEN `a`.`bulan` = 'April' THEN 4 
        WHEN `a`.`bulan` = 'Mei' THEN 5 
        WHEN `a`.`bulan` = 'Juni' THEN 6 
        WHEN `a`.`bulan` = 'Juli' THEN 7 
        WHEN `a`.`bulan` = 'Agustus' THEN 8 
        WHEN `a`.`bulan` = 'September' THEN 9 
        WHEN `a`.`bulan` = 'Oktober' THEN 10 
        WHEN `a`.`bulan` = 'November' THEN 11 
        WHEN `a`.`bulan` = 'Desember' THEN 12 
    END AS `bln`, 
    `a`.`bulan` AS `bulan`, 
    GROUP_CONCAT(DISTINCT `c`.`kode_rekening` SEPARATOR ',') AS `kode_rekening`, 
    SUM(`a`.`jumlah_gaji`) AS `jumlah_gaji` 
FROM 
    (((`sdi_payroll_detail` `a` 
    JOIN `sdi_mst_pegawai` `b` ON (`a`.`id_pegawai` = `b`.`id`)) 
    JOIN `sdi_mst_jenis_pegawai` `c` ON (`b`.`id_jenis` = `c`.`id_jenis`)) 
    JOIN `sdi_payroll` `d` ON (`a`.`reff` = `d`.`reff`)) 
WHERE 
    `d`.`status` = 'proses' 
GROUP BY 
    YEAR(`d`.`date`), 
    CASE 
        WHEN `a`.`bulan` = 'Januari' THEN 1 
        WHEN `a`.`bulan` = 'Februari' THEN 2 
        WHEN `a`.`bulan` = 'Maret' THEN 3 
        WHEN `a`.`bulan` = 'April' THEN 4 
        WHEN `a`.`bulan` = 'Mei' THEN 5 
        WHEN `a`.`bulan` = 'Juni' THEN 6 
        WHEN `a`.`bulan` = 'Juli' THEN 7 
        WHEN `a`.`bulan` = 'Agustus' THEN 8 
        WHEN `a`.`bulan` = 'September' THEN 9 
        WHEN `a`.`bulan` = 'Oktober' THEN 10 
        WHEN `a`.`bulan` = 'November' THEN 11 
        WHEN `a`.`bulan` = 'Desember' THEN 12 
    END;

avatar hilmanski
@hilmanski

2659 Kontribusi 2130 Poin

Dipost 1 bulan yang lalu

Login untuk ikut Jawaban