Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
#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
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;