在我的BO
我有一张桌子:
OrderID | order Number | reason code
123 | a | r2
123 | b | r1
123 | c | r3
124 |d | r3
我正在使用2张相同的来源,而且我需要所有订单ID,其中我有至少一行的理由R2
而在另一个所有其他所以需要一个应该只有:
OrderID | order Number | reason code
123 | a | r2
123 | b | r1
123 | c | r3
和第二张应该只有:
OrderID | order Number | reason code
124 |d | r3
我可以补充一点,订单号是唯一的,所以不能在不同的订单中有2个相同的数字......如果它有任何区别。
像这样的东西?
第一张 -
;with test_data(order_id, order_number, reason_code) as (
select 123, 'a', 'r2' union all
select 123, 'b', 'r1' union all
select 123, 'c', 'r3' union all
select 124, 'd', 'r3'
)
--
-- Test data above; Desired query below
--
select *
from test_data a
where exists (
select 1 from test_data b
where a.order_id = b.order_id
and b.reason_code = 'r2'
)
输出:
123 a r2
123 b r1
123 c r3
第二张 -
;with test_data(order_id, order_number, reason_code) as (
select 123, 'a', 'r2' union all
select 123, 'b', 'r1' union all
select 123, 'c', 'r3' union all
select 124, 'd', 'r3'
)
--
-- Test data above; Desired query below
--
select *
from test_data a
where NOT exists (
select 1 from test_data b
where a.order_id = b.order_id
and b.reason_code = 'r2'
)
输出:
124 d r3
希望这可以帮助。请回复。