MYSQLI查询总和列重复行

时间:2018-05-17 02:42:04

标签: php mysql sql mysqli

'price' of all duplicate invoice numbers

上添加所有列值ORDERS-TABLE with _flag = y

我可以在PHP数组排序或js中实现这一点,但理想情况下,如果可能的话,希望在实际的SQL查询中使用它。

Table_ORDERS

_id    |    _invoice_num    |    _name    |    _price    |    _flag

0          123                     bob           200          y
1          123                     bob           300          y
2          555                     mike          100          ...
3          123                     bob           300          y
3          888                     dave          200          y

腓:

<?php
 // im only after the query as its jsonen_code to ajax --

 $sql = 'select * , select(sum(price)) from table_orders Where _flag ='y' ;

 if ($results=mysqli_query($con,$sql)){

     while ($row=mysqli_fetch_row($results)){

            array_push($thearray,$row);

            } 
  } 

  echo json_encode(array_values($thearray));

 ?>

输出:

 /* output expecting array length 2 rows

 0 , 123 , bob , 800 , y
 1 , 888 , dave, 200 , y

 */

加入:

 <?php

   $the_type = 'the_flag';

   //removes dupes 
   $sql = "SELECT * FROM orders WHERE $the_type = '' GROUP BY _invoice";

  // need to sum the dupes now.

  ?>

1 个答案:

答案 0 :(得分:1)

这应该有效:

SELECT *,
       SUM(_price) AS total
FROM   _orders
WHERE  _flag = 'y'
GROUP  BY _invoice_num