mysql:如果其中一行在列B中有一个特定的值,我如何忽略所有包含(value column A)的行?

dnph8jn4  于 2023-01-01  发布在  Mysql
关注(0)|答案(1)|浏览(132)

我正在寻找一种方法来过滤不仅重复行,而且“初始”行。目标是有一个干净的所有职位的列表。该列表是由销售/会计使用,以查看开放的职位,这就是为什么初始“发票”的立场必须删除,以及如果“取消”的发票存在。
我尝试过groupby、子查询和EXISTS的解决方案,但是不能得到预期的结果。理想情况下,我把它作为where子句中的一个附加过滤器。
默认值
| 识别号|数量|类型|金额|
| - ------|- ------|- ------|- ------|
| 1个|NR-100|发票|一百|
| 第二章|NR-101|发票|二百|
| 三个|NR-102|发票|三百|
| 四个|NR-100|注销|一百|
| 五个|NR-102|注销|三百|
| 六个|NR-103|发票|一百五十|
预期成果
| 识别号|数量|类型|金额|
| - ------|- ------|- ------|- ------|
| 第二章|NR-101|发票|二百|
| 六个|NR-103|发票|一百五十|

l7wslrjt

l7wslrjt1#

存在测试似乎是可行之道,所以我想知道你有什么问题。

select * 
from t 
where type = 'invoice' and 
not exists (select 1 from t t1 where t1.nr = t.nr and t1.type = 'cancellation')

相关问题