2016-08-12 40 views
1

我正在使用codeigniter框架和mysql。我想要显示记录总和(amtreceived)> 50000。否则我想检查与价值,这意味着总和(iman_sub_product_payment_details.amtreceived)作为amount.Is有可能像这样检查。任何人都请帮助我。 以下是我的查询使用mysql和codeigniter检查总和(金额)的条件

$sql='SELECT pay_date,sub_ins_name as name, sum(iman_sub_product_payment_details.amtreceived) as amount, sum(iman_sub_product_payment_details.refundedamt) as refamount,iman_sub_product_payment_details.subscriber_id as subid FROM iman_subscriber_insitution_details LEFT JOIN `iman_sub_product_payment_details` ON `iman_sub_product_payment_details`.`subscriber_id`=`iman_subscriber_insitution_details`.`sub_institute_id`'; 
    if(!empty($data['fromdate'])){ 
     $sql.=' where iman_sub_product_payment_details.pay_date >= date("'.$fromdate.'")'; 

    }if(!empty($data['todate'])){ 
     $sql.=' and iman_sub_product_payment_details.pay_date <= date("'.$todate.'")'; 
    }if($data['comboval']!=0){ 
     $sql.=' and iman_sub_product_payment_details.combostatus ="1"'; 
    }if($data['from_amount']!=""){ 
      $sql.=' and amtreceived >="'.$data['from_amount'].'"'; 
     } 
     if($data['to_amount']!=""){ 
      $sql.=' and amtreceived <="'.$data['to_amount'].'"'; 
     } 
     if($data['currency']!=0){ 
      $sql.=' and iman_sub_product_payment_details.cur_id ="'.$data['currency'].'"'; 
     } 
    $sql.=' group by iman_subscriber_insitution_details.sub_institute_id'; 
    $sql.=' UNION 
    SELECT pay_date,agentname as name,sum(iman_sub_product_payment_details.amtreceived) as amount,sum(iman_sub_product_payment_details.refundedamt) as refamount,iman_sub_product_payment_details.subscriber_id as subid FROM iman_agent_details 
    LEFT JOIN `iman_sub_product_payment_details` ON `iman_sub_product_payment_details`.`dealer_id`=`iman_agent_details`.`agentid` '; 

    if(!empty($data['fromdate'])){ 
     $sql.=' where iman_sub_product_payment_details.pay_date >= date("'.$fromdate.'")'; 

    }if(!empty($data['todate'])){ 
     $sql.=' and iman_sub_product_payment_details.pay_date <= date("'.$todate.'")'; 
    }if($data['comboval']!=0){ 
     $sql.=' and iman_sub_product_payment_details.combostatus ="1"'; 
    }if($data['from_amount']!=""){ 
     $sql.=' and amtreceived >="'.$data['from_amount'].'"'; 
    } 
    if($data['to_amount']!=""){ 
     $sql.=' and amtreceived <="'.$data['to_amount'].'"'; 
    } 
    if($data['currency']!=0){ 
     $sql.=' and iman_sub_product_payment_details.cur_id ="'.$data['currency'].'"'; 
    } 
    $sql.=' group by iman_agent_details.agentid'; 
    $sql.=' order by name asc'; 
    $query=$this->db->query($sql); 
+0

我不知道我想在这种情况下使用。我总结了许多记录工会等所以我的意思是作为一个新的问题 – premi

回答

2

你需要的是GROUP BY后面的HAVING子句。如:

HAVING SUM(amtreceived) > 5000

+0

感谢它的工作 – premi