Каждый ваш подпункт (select count(*) .. )
возвращает более 1 строки. Исходя из вашего запроса, я предполагаю, что вам нужны индивидуальные подсчеты, основанные на различных значениях kehadiran
, вы упростите свой запрос как
SELECT tanggal,
SUM(CASE WHEN kehadiran="alfa" THEN 1 ELSE 0 END) AS alfa,
SUM(CASE WHEN kehadiran="izin" THEN 1 ELSE 0 END) AS izin,
SUM(CASE WHEN kehadiran="hadir" THEN 1 ELSE 0 END) AS hadir,
SUM(CASE WHEN kehadiran="sakit" THEN 1 ELSE 0 END) AS sakit
FROM absensi_siswa
GROUP BY tanggal
Используя mysql васможет сделать предложение sum
еще короче, как sum(kehadiran="alfa") as alfa
, если поместить выражение в sum(a=a)
, будет возвращено логическое значение 0/1 или true / false, и вы получите счет на основе вашего выражения