Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como escrever essa consulta complexa no codeigniter?


$this->db->query() A função SOMENTE retorna TRUE/FALSE em caso de sucesso ou falha. Ele NÃO retorna um conjunto de resultados de banco de dados, nem define o cronômetro de consulta, compila dados de ligação ou armazena sua consulta para depuração. Ele simplesmente permite que você envie uma consulta. A maioria dos usuários raramente usará essa função.

Tente desta forma:-
$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;