Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment écrire cette requête complexe dans codeigniter ?

$this->db->query() La fonction renvoie UNIQUEMENT TRUE/FALSE en cas de succès ou d'échec. Il NE renvoie PAS un ensemble de résultats de base de données, ni ne définit le temporisateur de requête, ni ne compile les données de liaison, ni ne stocke votre requête pour le débogage. Il vous permet simplement de soumettre une requête. La plupart des utilisateurs utiliseront rarement cette fonction.

Essayez de cette façon :-

$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;