使用独特的日期价格组合更新销售记录
本指南演示如何识别和更新销售表中拥有唯一价格-日期组合的销售记录。 目标是仅更新那些销售条目,不存在任何共享相同价格和日期的重复条目。
一种方法涉及使用 SQL 查询的两步过程:
第 1 步:识别独特的组合
以下查询选择唯一的 saleprice
和 saledate
组合,及其相应的 id
和出现次数:
<code class="language-sql">SELECT DISTINCT saleprice, saledate, id, COUNT(*) AS count FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1;</code>
此查询按 saleprice
和 saledate
对销售记录进行分组,然后使用 HAVING
过滤结果以仅保留那些计数为 1 的组,表示唯一的组合。
第 2 步:更新销售表
要将这些唯一销售记录的 status
更新为“ACTIVE”,请使用以下查询:
<code class="language-sql">UPDATE sales SET status = 'ACTIVE' WHERE id IN ( SELECT id FROM sales s INNER JOIN ( SELECT saleprice, saledate FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1 ) AS unique_sales ON s.saleprice = unique_sales.saleprice AND s.saledate = unique_sales.saledate );</code>
此查询更新 sales
表,将 status
与子查询中标识的记录匹配的记录的 id
设置为“ACTIVE”。子查询有效地检索与唯一的 id
和 saleprice
组合关联的 saledate
值。 INNER JOIN
确保仅更新匹配的记录。
此方法利用 GROUP BY
和 HAVING
子句的强大功能来有效地跨多个列执行不同的选择并实现所需的更新。
以上是如何更新销售表中具有唯一日期价格组合的行?的详细内容。更多信息请关注PHP中文网其他相关文章!