2015-12-30 67 views
0

你好我的問題是如何從數據庫中獲取最近12個月的記錄,如果任何月份沒有任何記錄,那麼它應該將該月份值返回爲0。 所以如何做到這一點,任何人都可以幫助我解決這個問題。如何從數據庫中獲得最近12個月的記錄

我試着下面的查詢,但它只返回那些有記錄的月份記錄。

$query = $this->db->select('count(*) as count,MONTHNAME(created_at) as months,MONTH(created_at) as month') 
         ->where('created_at >= DATE_SUB(now(), INTERVAL 12 MONTH)') 
         ->group_by('months') 
         ->order_by('month') 
         ->get('users'); 
+0

向我們展示您的數據庫結構,以便人們能夠更好地幫助您。現在我可以說你過去的十二個月不會過去,因爲你過去的十二個月都會過去。 –

+0

我編輯我的問題..檢查它 我想要最後12個月的記錄,如果有任何月份沒有記錄比它應該返回爲該月的0值 – kc1994

回答

0

試試這個..

$query = "SELECT * FROM `tablename` WHERE date > DATE_SUB(NOW(), INTERVAL 12 MONTH) AND `id`='$id'"; 
0

試試這個

# get current Year and month 
$currentYear = date("Y"); 
$currentMonth = date("m"); 

# set that to filter 
$startDate = $currentYear.'01-01'; // output - 2015-01-01 
$endDate = $currentYear.'-'.$currentMonth.'-31'; // output - 2015-currentMonth-31 

# and your query should be this 
$query = $this->db->query(
    "SELECT count(distinct u.id) as monthCount 
    FROM users as u 
    WHERE created_at >= $startDate 
    AND created_at >= $endDate 
    GROUP BY monthCount 
    "); 

$result = $query->result_array(); 
return $result; 
相關問題