2016-09-24 2 views
1
$queryOrigin = Order::find() 
      ->andFilterWhere(['orders.id' => $r->get('id')]) 
      ->andFilterWhere(['orders.type' => $r->get('type')]) 
      ->andFilterWhere(['orders.phone_num' => $r->get('phone_num')]) 
      ->andFilterWhere(['orders.channel_id' => $r->get('channel_id')]) 
      ->andFilterWhere(['orders.channel_order_id' => $r->get('channel_order_id')]) 
      ->andFilterWhere(['orders.fail_reason' => $r->get('fail_reason')]) 
      ->andFilterWhere(['>=', 'orders.created_at', $start_time]) 
      ->andFilterWhere(['<=', 'orders.created_at', $end_time]) 
      ->andFilterWhere(['orders.type' => 1]) 
      ->andFilterWhere(['orders.status' => $r->get('status')]) 
      ->andFilterWhere(['like', 'orders.area', empty($row)?null:$row[0]['area_name']]) 
      ->andFilterWhere(['like', 'orders.operator', $r->get('operator')]) 
      ->joinWith(['provider'])->andFilterWhere(['cards.provider_id' => $provider,'order_card_items.flow_number' => $flow_num]) 
      ->sum('orders.price'); 

私はsum(['cards.card_value','orders.price'])が必要ですが、そのパラメータは配列ではない文字列です。どうしたらいいですか?Yii2はsum()の2つのカラム値を出力します

答えて

0

あなたはleteral形式

$queryOrigin = Order::find()->select(' sum(orders.price), sum(cards.card_value) ') 
     ->andFilterWhere(['orders.id' => $r->get('id')]) 
     ->andFilterWhere(['orders.type' => $r->get('type')]) 
     ->andFilterWhere(['orders.phone_num' => $r->get('phone_num')]) 
     ->andFilterWhere(['orders.channel_id' => $r->get('channel_id')]) 
     ->andFilterWhere(['orders.channel_order_id' => $r->get('channel_order_id')]) 
     ->andFilterWhere(['orders.fail_reason' => $r->get('fail_reason')]) 
     ->andFilterWhere(['>=', 'orders.created_at', $start_time]) 
     ->andFilterWhere(['<=', 'orders.created_at', $end_time]) 
     ->andFilterWhere(['orders.type' => 1]) 
     ->andFilterWhere(['orders.status' => $r->get('status')]) 
     ->andFilterWhere(['like', 'orders.area', empty($row)?null:$row[0]['area_name']]) 
     ->andFilterWhere(['like', 'orders.operator', $r->get('operator')]) 
     ->joinWith(['provider'])->andFilterWhere(['cards.provider_id' => $provider,'order_card_items.flow_number' => $flow_num]); 
+0

を使用して選択で2点の合計を置くことができる非常に多くのTOUをありがとうございます。 – VictoryForYou

関連する問題