如何在CodeIgniter活动记录中编写此mySQL查询?

时间:2016-05-23 01:44:05

标签: php mysql codeigniter activerecord

如何使用活动记录CodeIgniter编写此查询。

我正在使用CodeIgniter版本2。 是否可以使用库子查询编写它?

示例:

$this->db->select('......');
$this->db->from('......');

这是我的疑问。

SELECT `a`.`NAMA_BULAN` AS 'Bulan',
 CASE WHEN `b`.`TOTAL_STLH_DISC` IS NULL
 THEN '0'
 ELSE `b`.`TOTAL_STLH_DISC`
 END AS 'Total Pendapatan'
FROM `tbl_bulan` AS `a`
LEFT JOIN (
           SELECT MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`) AS `TGL_TRANSAKSI`,
           SUM(`tbl_transaksi_jual`.`TOTAL_STLH_DISC`) AS `TOTAL_STLH_DISC`
           FROM `tbl_transaksi_jual`
           WHERE `tbl_transaksi_jual`.`ID_CABANG`=2
           GROUP BY MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`)
          ) AS `b` ON `a`.ID_BULAN = `b`.`TGL_TRANSAKSI`
ORDER BY `a`.ID_BULAN ASC

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您可以在$ this-> db->查询中编写整个查询('您的查询')

答案 1 :(得分:0)

您可以编写手动查询&使用$this->db->query($sql)函数。

    $sql = "SELECT `a`.`NAMA_BULAN` AS 'Bulan',
                 CASE WHEN `b`.`TOTAL_STLH_DISC` IS NULL
                 THEN '0'
                 ELSE `b`.`TOTAL_STLH_DISC`
                 END AS 'Total Pendapatan'
                FROM `tbl_bulan` AS `a`
                LEFT JOIN (
                           SELECT MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`) AS `TGL_TRANSAKSI`,
                           SUM(`tbl_transaksi_jual`.`TOTAL_STLH_DISC`) AS `TOTAL_STLH_DISC`
                           FROM `tbl_transaksi_jual`
                           WHERE `tbl_transaksi_jual`.`ID_CABANG`=2
                           GROUP BY MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`)
                          ) AS `b` ON `a`.ID_BULAN = `b`.`TGL_TRANSAKSI`
                ORDER BY `a`.ID_BULAN ASC";

    $query = $this->db->query($sql);
    $result = $query->result_array();
相关问题