Mysql
 sql >> Database >  >> RDS >> Mysql

Come scrivere questa query complessa in codeigniter?

$this->db->query() la funzione restituisce SOLO VERO/FALSO in caso di esito positivo o negativo. NON restituisce un set di risultati del database, né imposta il timer della query, né compila i dati di collegamento o memorizza la query per il debug. Ti consente semplicemente di inviare una query. La maggior parte degli utenti utilizzerà raramente questa funzione.

Prova in questo modo:-

$sql  = "SELECT 
        a.ar, 
        a.jabatan, 
        COUNT(*) AS JumlahWPBaru, 
        SUM( 
            CASE WHEN a.no_shim IS NOT NULL 
            THEN 1 
            WHEN a.no_shim IS NULL 
            THEN 0 
            END ) AS JumlahHimbauan
        FROM (

        SELECT 
            a.ar, 
            c.jabatan, 
            a.npwp, 
            a.kpp, 
            a.cab, 
            a.namawp, 
            b.kd_shim, 
            b.no_shim, 
            b.tgl_shim
        FROM mfwpbudi a
        LEFT JOIN tb_shimbauan b ON ( a.npwp = b.npwp ) 
        LEFT JOIN easystp_user c ON ( SUBSTR( a.ar, 1, 9 ) = c.id_user ) 
        WHERE a.tanggal_daftar >  '2013-12-31'
        AND c.jabatan =  '05E'
        ) AS a
        GROUP BY a.ar";

$query = $this->db->query($sql);
$result = $query->result_array();
return $result;