2016-05-31 11 views
0

私はこのMySQLテーブルを持っており、totalUnitsとordersの合計を同じclientIDで追加したいと思います。私は、私はまだ私は何をすべき代わりに2の3行を次のコード取得していないときMysqlクエリ - 同じIDを持つ複数の行からデータを追加してテーブルに配置します

OrderID clientID  name  pay  totalUnits  total 
1   1   A  Paid   2   200 
2   2   B  Paid   1   150 
3   1   A  Paid   1   100 

これは出力

clientID  name  totalOrders  totalUnits  totalSales 
1    A   2    3    300 
2    B   1    1    150 

すべきですか?ご協力ありがとうございました!

$orders = $wpdb->get_results("SELECT * FROM wp_orderrecords WHERE pay = 'Paid' AND paymentDate BETWEEN '".$from."' AND '".$to."'"); 

foreach($orders as $order){ 
    $orderID = $order->orderID; 
    $clientID = $order->clientID; 
    $total = $order->total; 

    $results = $wpdb->get_results("SELECT * FROM wp_clients WHERE clientID = '".$clientID."%'");  
      foreach($results as $order){ 
        $clientsName = $order->clientsName; 
      } 

      $sales = $wpdb->get_results("SELECT * FROM wp_orderrecords WHERE pay = 'Paid' AND clientID = '".$clientID."'"); 
      foreach($sales as $sale){ 
        $total = $sale->total; 
        $totalUnits = $sale->totalUnits; 

        $totalSales = $totalSales + $total; 
        $totalProducts = $totalProducts + $totalUnits; 
      } 

      $orderItem = array(
        'clientID' => $clientID, 
        'clientsName' => $cName, 
        'totalOrders' => $totalOrders, 
        'totalProducts' => $totalProducts, 
        'totalSales' => $totalSales 
       ); 
      $records[] = $orderItem; 
} 
echo json_encode($records); 
+0

私は受け入れ答えでかなり改善する余地があると思うが、あなたが見て(と作用)きないまでhttp://meta.stackoverflow.com/questions/333952/why-should -i-provide-an-mcve-for-what-to-my-to-be-a-very-simple-sql-query – Strawberry

答えて

1
SELECT 
    clientId,name, 
    count(totalUnits) as totalOrders, 
    sum(totalUnits) as totalUnits, 
    sum(total) as totalSales 
FROM wp_orderrecords 
GROUP BY clientId,name 
+0

ありがとうございました!出来た。それでtotalUnitsを印刷できますか?単純にtotalUnitsをエコーし​​ますか? – user3383911

関連する問題