gogozz

导航

补集EXCEPT 的使用

 

补集的定义

参数说明:

● UNION: 求两个数据集的并集,即将两个数据集合并成一个数据集。

● INTERSECT:求两个数据集的交集。即输出两个数据集均包含的记录。

● EXCEPT: 求第二个数据集在第一个数据集中的补集。即输出第一个数据集包含而第二个数据集不包含的记录。

  其实这个理解有点抽象,应该理解为去掉A集合中,B也存在的元素。

● MINUS: 等同于EXCEPT。

 

 

 

 

用例:

SELECT wlzbm,wlzms FROM uf_SAP_wlz WHERE wlfl = 'Z004' 
EXCEPT  
SELECT wlzbm,wlzms FROM uf_SAP_wlz WHERE ZFL != ''

 

 

实际例子:

可以看到,物料分类关联中分类,中分类再关联物料组编码

但这个关联不是连续的。

有一些是物料分类直接对接到了物料组编码

 

实际用到的时候,如果用户选择了物料分类,那么就要去看中分类能否选择。

如果中分类有,选择后到物料组继续选择。

如果中分类没有,则直接到物料组选择。

 

解决这个中间层级有可能缺失的情况。

思路:

先:

SELECT wlzbm,wlzms FROM uf_SAP_wlz WHERE wlfl = 'Z001' 

找出这个物料分类对应的物料组。

这个是一定有的。

 

SELECT wlzbm,wlzms FROM uf_SAP_wlz WHERE ZFL != '201'

找出不是中分类的集合。

 

最后用到补集就能找到该中分类的集合了。

这样一个好处,就是当中分类不存在集合的时候,在与物料分类做补集的时候,能完整带出物料分类对应的所有物料组编码。

 

posted on 2023-09-15 15:25  stfzhuang  阅读(23)  评论(0编辑  收藏  举报