Php MYSQLI Query sum列复制行上的值
在带有_flag=y的ORDERS-TABLE上添加所有重复发票编号的所有列值Php MYSQLI Query sum列复制行上的值,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,在带有_flag=y的ORDERS-TABLE上添加所有重复发票编号的所有列值“price” 我可以在PHP数组排序或js中实现这一点,但如果可能的话,我希望在实际的SQL查询中实现这一点 表11订单 _id | _invoice_num | _name | _price | _flag 0 123 bob 200 y 1 123
“price”
我可以在PHP数组排序或js中实现这一点,但如果可能的话,我希望在实际的SQL查询中实现这一点
表11订单
_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:
增加:
<?php
$the_type = 'the_flag';
//removes dupes
$sql = "SELECT * FROM orders WHERE $the_type = '' GROUP BY _invoice";
// need to sum the dupes now.
?>
这应该可以:
SELECT *,
SUM(_price) AS total
FROM _orders
WHERE _flag = 'y'
GROUP BY _invoice_num
所以只需要得到重复条目的总和?不,我仍然需要完整的行,但只需要将重复的值相加,并将重复的行显示一次作为输出:groupby
不应该做您需要的吗?它仍将显示所有其他记录,但会合并重复记录。上面的示例已简化,但这不是我实现实际问题的方式。基本上,我希望显示所有行,但仅显示单个副本中的一行,并将所有重复项一起添加到其价格列Group by(删除重复项),然后我希望对重复项进行求和,但仍显示至少一条记录,然后正常显示其余记录。。基本上每个项目都有一个发票号,所以如果你买了两部手机,它们共享相同的发票号,因为在同一发票上有相同的发票号,但当我显示或搜索时,我不想显示每一行,而只是显示每一行的所有发票号和成本总额,只要标志='y'我在*符号后缺少逗号。。这是可行的,但我要说的是,它在行结果的末尾添加了一个额外的列,其中包含as total。这确实解决了我的问题,但不是我所期望的那样。非常感谢。
<?php
$the_type = 'the_flag';
//removes dupes
$sql = "SELECT * FROM orders WHERE $the_type = '' GROUP BY _invoice";
// need to sum the dupes now.
?>
SELECT *,
SUM(_price) AS total
FROM _orders
WHERE _flag = 'y'
GROUP BY _invoice_num