Postingan lainnya
#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;