且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在codeigniter中编写此复杂查询?

更新时间:2023-02-04 20:29:44

$ this-> db-> query()函数仅在成功或失败时返回TRUE/FALSE.它不返回数据库结果集,也不设置查询计时器,编译绑定数据或存储查询以进行调试.它只是让您提交查询.大多数用户很少使用此功能.

$this->db->query() function ONLY returns TRUE/FALSE on success or failure. It DOES NOT return a database result set, nor does it set the query timer, or compile bind data, or store your query for debugging. It simply lets you submit a query. Most users will rarely use this function.

尝试这种方式:-

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