我有一个简单的表格,其中包含NAME,PRICE,STATUS等基本销售信息。 对于每个客户互动,他们使用NAME和PRICE输入到表中。 如果该客户已取消该交易,则会添加另一条记录,其中包含NAME,负PRICE,以及STATUS =已取消。这是一个示例表
+------+--------+-----------+
| NAME | PRICE | STATUS |
+------+--------+-----------+
| bob | 100 | |
| mary | 100 | |
| mary | -100 | cancelled |
| andy | 250 | |
| mary | 250 | |
+------+--------+-----------+
我想要做的是删除已取消的交易的正面和负面记录,以便生成的表格看起来像这样。
+------+--------+-----------+
| NAME | PRICE | STATUS |
+------+--------+-----------+
| bob | 100 | |
| andy | 250 | |
| mary | 250 | |
+------+--------+-----------+
有关如何在SQL中执行此操作的任何建议吗?
答案 0 :(得分:-1)
加入表格以匹配相关记录:
C:\intelFPGA\17.0\quartus\cusp\synthinclude\stlport\stdio.h:22:11: fatal error: '../include/stdio.h' file not found # include _STLP_NATIVE_C_HEADER(stdio.h)
联接查找具有相同名称的行,并且价格是相同的价格或价格的负数。 DELETE t1
FROM yourTable AS t1
JOIN yourTable AS t2 ON t1.name = t2.name AND t1.price IN (t2.price, -t2.price)
WHERE t2.status = 'canceled'
子句将此限制为匹配已取消的行。