使用与您相同的逻辑连接两个表,获取主要项(以及
Asm Num
)在查询A中,对查询B中的子项应用类似的逻辑,方法是使用
Ship Date
像
IS NULL
如果计数大于0,则表示您不希望主项具有相应的
Asm编号
因为所有子项都必须
发货日期
像
NOT NULL
根据您的要求。因此情况
and B.[sub_items_null_dates] = 0
加入时
A
和
B
.
select A.[Order Number], A.[Unique ID]
from
( select bo.[Order Number], boi.[Unique ID], boi.[Asm Num]
from
[Booked Order Items] boi JOIN [Booked Orders] bo
on boi.[Order Number] = bo.[Order Number]
where boi.[Asm Main] = 1 and boi.[Date Promised] IS NULL
) A
JOIN
( select bo.[Order Number], boi.[Asm Num],
SUM(CASE WHEN boi.[Ship Date] IS NULL THEN 1 ELSE 0 END) as sub_items_null_dates
from
[Booked Order Items] boi JOIN [Booked Orders] bo
on boi.[Order Number] = bo.[Order Number]
where boi.[Asm Main] = 0
GROUP BY bo.[Order Number], boi.[Asm Num]
) B
ON A.[Order Number] = B.[Order Number]
and A.[Asm Num] = B.[Asm Num]
and B.[sub_items_null_dates] = 0;