У меня проблемы при выборе по объединению и по группам, на выходе есть нулевой вывод. Может быть, потому что есть несколько входов с подробными данными и некоторые математические операции внутри.
У меня есть 1 таблица представления с первичным ключом и 2 внешних ключа, которые связаны с 2 таблицами.
Я пробовал этот код, объединяя все и группируя изнутри.
SELECT no_daftar,nama,(k1/jk1) as k1,(k2/jk2) as k2,(k3/jk3) as k3,(k4/jk4) as k4 FROM
(
SELECT no_daftar, nama, SUM(k1) as k1, SUM(k2) as k2, SUM(k3) as k3, SUM(k4) as k4,
(SELECT COUNT(kode_aspek) FROM kriteria WHERE kode_aspek="K1" AND kode_aspek=a.kode_aspek) as jk1,
(SELECT COUNT(kode_aspek) FROM kriteria WHERE kode_aspek="K2" AND kode_aspek=a.kode_aspek) as jk2,
(SELECT COUNT(kode_aspek) FROM kriteria WHERE kode_aspek="K3" AND kode_aspek=a.kode_aspek) as jk3,
(SELECT COUNT(kode_aspek) FROM kriteria WHERE kode_aspek="K4" AND kode_aspek=a.kode_aspek) as jk4
FROM
(
SELECT no_daftar, nama, kode_aspek, nilai AS k1, 0 AS k2, 0 as k3, 0 as k4 FROM bobot WHERE kode_aspek = 'K1' AND tahun = 2019
UNION ALL
SELECT no_daftar, nama, kode_aspek, 0 AS k1, nilai AS k2, 0 as k3, 0 as k4 FROM bobot WHERE kode_aspek = 'K2' AND tahun = 2019
UNION ALL
SELECT no_daftar, nama, kode_aspek, 0 AS k1, 0 AS k2, nilai as k3, 0 as k4 FROM bobot WHERE kode_aspek = 'K3' AND tahun = 2019
UNION ALL
SELECT no_daftar, nama, kode_aspek, 0 AS k1, 0 AS k2, 0 as k3, nilai as k4 FROM bobot WHERE kode_aspek = 'K4' AND tahun = 2019
) AS a
LEFT JOIN aspek b ON ( a.kode_aspek = b.kode_aspek )
GROUP BY a.no_daftar, a.kode_aspek
) as SEMI
Ссылка для скачивания базы данных здесь:
https://drive.google.com/file/d/1a5BNT34v3keKwFaPxV73C48NzKQho34O/view?usp=sharing
Я ожидаю, что выходные данные будут у каждого 1 первичного ключа иметь 4 выходных в каждой строке, но фактический результат - 4 строки с нулевым выражением