我正在处理来自两个系统的数据。系统a是新的,包括所有运输方式。系统b是一个遗留系统,当客户移动到系统a时,数据不会被删除。我在运输业工作,遗留系统处理一种类型的运输,而a包含所有类型的运输。因为有些客户是遗留的,所以我仍然需要这些数据,但是由于所有遗留数据都迁移到了新系统中,所以新系统中的客户会得到重复的数据。
我有一个带有从系统a和b中提取数据的联合的查询。如果第一个查询中的字段=x,我需要创建一个过滤器,它将不包含第二个查询中的任何数据。
前任:
select
a.customer,
a.carrier,
a.mode,
a.shipmentdate
from NewSystem a
Union
select
b.customer,
b.carrier,
'mode type' as Mode,
b.shipmentdate
from OldSystem b
在第二个查询中,由于没有选择模式,因此我为该列硬编码了一个模式类型。我需要以某种方式证明,如果a=mode类型中的mode,那么就从b中排除结果。我曾尝试对整个查询使用别名并使用case语句,但它似乎没有删除结果。
1条答案
按热度按时间ldxq2e6h1#
如果没有样本数据,这只是猜测,但我认为你在寻找
WHERE NOT EXISTS
.这将只返回第二个数据集中第一个数据集中没有对应行的行。