联合中重复记录的总和
Posted
技术标签:
【中文标题】联合中重复记录的总和【英文标题】:sum of Duplicates records in union 【发布时间】:2021-01-03 05:57:09 【问题描述】:我需要获取 item_name 和 extra 相同的所有重复记录的总和,然后对数量求和。 这是我的代码。
$query_or1="select * from invoice_client where order_id='$order1'
UNION all
select * from invoice_client where order_id='$order2'
UNION all
select * from invoice_client where order_id='$order3'
UNION all
select * from invoice_client where order_id='$order4'
UNION all
select * from invoice_client where order_id='$order5'
ORDER BY extra, item_name
";**
// 使用以下代码显示结果 回声
**echo
"<tr>
<td>".$result_or1['inv_id']."</td>
<td>".$result_or1['item_name']."</td>
<td>".$result_or1['extra']."</td>
<td>".$result_or1['quantity']."</td>
<td>".$get_wet*$result_or1['quantity']."</td>
</tr>";**
【问题讨论】:
为什么首先使用 UNION?这应该是 一个 SELECT 语句,带有WHERE order_id IN (…, …)
然后,您可能需要查看 GROUP BY 和聚合函数。
您需要意识到查询的WHERE
部分可能包含多个条件!
【参考方案1】:
看起来你想要一个带有 in
条件的 where
子句,然后是聚合:
select extra, item_name, sum(quantity) sum_quantity
from invoice_client
where corder_id in (?, ?, ?, ?)
group by extra, item_name
order by extra, item_name
请注意,我使用?
表示查询的参数;您应该真正使用准备好的语句,而不是在查询字符串中连接变量:这使您的代码更安全、更高效。
【讨论】:
以上是关于联合中重复记录的总和的主要内容,如果未能解决你的问题,请参考以下文章