BlackWhite
BlackWhite

Reputation: 832

Select from table where clause is interval

In this:

    $this->db->select('count(o.id)');
    $this->db->from('orders o');           
            $this->db->join('order_status_history', 'o.id =  order_status_history.order_id');
            $this->db->where("(order_status_history.in_dts)::date ='" .$reportDay. "'");
            $this->db->where('order_status_history.new_status ' , 6);

I want select count(id) where order_status_history.new_status is a interval eg(2<=order_status_history.new_status<=6), no one single int. How make this in this sql?

Upvotes: 0

Views: 124

Answers (2)

deviloper
deviloper

Reputation: 7240

What do you think about this:

$this->db->select('count(o.id)');
$this->db->from('orders as o');           
$this->db->join('order_status_history', 'o.id =  order_status_history.order_id');
$this->db->where("(order_status_history.in_dts)::date ='" .$reportDay. "'");
$this->db->where_between('order_status_history.new_status ',2 , 6);

Upvotes: 2

Kovge
Kovge

Reputation: 2019

As I Remember you can add Where statement as a string, like in a native sql query. Please, try this:

    $this->db->select('count(o.id)');
    $this->db->from('orders o');           
        $this->db->join('order_status_history', 'o.id =  order_status_history.order_id');
        $this->db->where("(order_status_history.in_dts)::date ='" .$reportDay. "'");
        $this->db->where('order_status_history.new_status BETWEEN 2 AND 6');

Is This Working ?

Upvotes: 2

Related Questions