2017-07-22 7 views
1

私のテーブル定義は、私は2つの条件の下で、特定のsellerためmaster_payment列のsum必要使用またはlaravelクエリビルダで

**PURCHASE_PYAMENTS** 

SELLER  MASTER_PAYMENT  BILL  COUNT_VB  PAYMENT_STATUS  REMAIN_PARTIAL_AMOUNT 

abc   15000    0   0    1     0 
xyz   14000    1   1    1     14000 
abc   15000    0   0    0     5000 

以下の通りです:

  1. payment_status = 1count_vb = 0
  2. payment_status = 0remain_partial_amount > 0

上記の条件のいずれかが当てはまる場合、master_paymentsumに追加する必要があります。どのようにして1つのクエリを使用して達成できますか。

私は1つの条件のみのために私のクエリは以下の通りである私の自己でそれをしようが、結果を得る:parameter groupingため

$total_count_vb = DB::table('purchase_payments') 
     ->where('seller',$seller_list) 
     ->where('count_vb',0) 
     ->where('payment_status',1) 
     ->SUM('master_payment'); 

答えて

0

使用where()orWhere()閉鎖:

Payment::where('seller', 'abc')-> 
     ->where(function ($q) { 
      $q->where(function ($q) { 
       $q->where('payment_status', 1)->where('count_vb', 0); 
      }) 
      ->orWhere(function ($q) { 
       $q->where('payment_status', 0)->where('remain_partial_amount', '>', 0); 
      }); 
     }); 
     ->sum('master_payment'); 
関連する問題