codeigniter sum查询单列

时间:2014-09-29 15:12:37

标签: mysql sql codeigniter-2

查询我试图返回值超过10,000的列的总和结果。我已尝试在查询中添加总和(值)作为总计,但它无效。

我的代码是:

    $this->db->select('sum(value) as total, date, member_id');
    $this->db->where('member_id', $_SESSION['sess_user_id']);
    $this->db->where('cost.value >', '9999');
    $this->db->where('cost.date = DATE_SUB(NOW(), INTERVAL 5 DAY)');

    $query = $this->db->get('orders');

    return $query->num_rows();

这里是原始SQL输出:

选择总和(值)为总计,datemember_id FROM(steps)WHERE member_id =' 1'和costvalue> ' 9999' AND costdate = DATE_SUB(NOW(),INTERVAL 5 DAY)

2 个答案:

答案 0 :(得分:0)

不清楚你想要什么,但是:

如果您需要日期为5天的特定用户的值总和,那么您的查询应该有效,但有两个问题:

  1. 这可能是一个错字,但在您的代码中,您可以从"订单中获取数据"在原始查询中,数据来自"步骤"。如果它不是拼写错误,那你就是在错误的地方。
  2. 在你的"其中",你要求的行是" date"是等于(=)到5天前,但使用" now()"您要求的是5天前日期完全的行,包括小时,分钟和秒。
  3. 如果您需要特定用户的值为10000或更多的行数,则不得使用" SUM"或者你总是得到1作为结果(或null)。除此之外,日期恰好是5天前,包括小时,分钟和秒。

    另一方面,你说你想要列数,我认为你需要行数,但如果你真的需要列数,你需要更改

    SELECT sum(value) as total, date, member_id 
    

    SELECT *
    

    return $query->num_rows();
    

    return $query->num_fields();
    

    希望有所帮助

答案 1 :(得分:0)

function cart_product_join()
    {
        $this->db->select('products.product_id,cart.product_id,SUM(products.special_price*cart.product_qty)');
        $this->db->from('products');
        $this->db->join('cart', 'cart.product_id = products.product_id', 'right');
        $result = $this->db->get()->result();
        return $result;
        //$result=$this->db->last_query();
        //echo $result;
    }