Select MAX CASE WHEN query
I have tables, they are: tb_penelaah
-----------------------------
id_penelaah | nama_penelaah |
-----------------------------
1 | penelaah 1 |
2 | penelaah 2 |
-----------------------------
tb_skill
----------------------------
id_sill | nama_skill |
----------------------------
1 | skill 1 |
2 | skill 2 |
----------------------------
tb_skill_penelaah
-----------------------------------------
skill | penelaah | status | priority|
-----------------------------------------
1 | 1 | A | 1 |
2 | 1 | B | 1 |
1 | 2 | A | 1 |
2 | 2 | A | 2 |
----------------------------------------
SO I want to echoing data in a page like this (in PHP Codeigniter):
Detail for Penelaah 1:
Nama Penelaah : Penelaah 1
Skill A 1 : skill 1
Skill A 2 : -
Skill B 1 : skill 2
SKill B 2 : -
and detail for Penelaah 2:
Nama Penelaah : Penelaah 2
Skill A 1 : skill 1
Skill A 2 : skill 2
Skill B 1 : -
SKill B 2 : -
I've tried query like this :
function det_skill_pen($id){
$this->db
->query("SELECT a.nama_penelaah,a.id_penelaah,
MAX(CASE WHEN b.p_status = 'A' AND b.p_urutan = 1 THEN c.nama_skill END) 'SKILL_A1',
MAX(CASE WHEN b.p_status = 'A' AND b.p_urutan = 2 THEN c.nama_skill END) 'SKILL_A2',
MAX(CASE WHEN b.p_status = 'B' AND b.p_urutan = 1 THEN c.nama_skill END) 'SKILL_B1',
MAX(CASE WHEN b.p_status = 'B' AND b.p_urutan = 2 THEN c.nama_skill END) 'SKILL_B2'
FROM tb_penelaah a
LEFT JOIN tb_skill_p b ON b.p_penelaah = a.id_penelaah
LEFT JOIN tb_skill c ON c.id_skill = b.p_skill
GROUP BY a.id_penelaah
ORDER BY id_penelaah");
$query=$this->db->get();
return $query;
}
But error occurred like this
A Database Error Occurred
No tables used
SELECT *
anyone can help? I'm not well in sql query