2016-01-18 41 views
1

我使用mysql並嘗試將此查詢寫入Codeigniter的模型中。這個查詢在phpmyAdmin中完美運行。如何在codeigniter中編寫這個複雜的查詢?

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 

這裏是我寫的模型。

function m_data_penyampaian_shim() 
{ 
    $this->db->query("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"); 
    $qry=$this->db->get(); 
    return $qry->result(); 
} 

,但我得到的錯誤:

錯誤編號:1096個

無表使用

SELECT *

文件名:C:\ XAMPP \ htdocs中\ himbauanwpbaru \ system \ database \ DB_driver.php

行號:330

我該如何解決這個問題?有沒有我從上面的代碼中留下的東西? 我很欣賞任何建議和解決方案。 謝謝

回答

1

$this->db->query()函數僅在成功或失敗時返回TRUE/FALSE。它不會返回數據庫結果集,也不會設置查詢計時器或編譯綁定數據,也不會存儲查詢以進行調試。它只是讓你提交一個查詢。大多數用戶很少使用此功能。

試試這個方法: -

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

謝謝你,拉維Hirani。你的代碼運行完美。 –

+0

@mas_budhi:如果它工作正常,則將其勾選爲已接受。 :) –