情景 - 我們有包裝物品,它被定義爲一個或多個物品的合成物。一個複雜的包是一個有多個組件項目的包。複雜包裝物品的每個組件項目都應鏈接到相同數量的位置。行值不一致
例如: 包P1
具有分量C1
,C2
,和C3
。每個項目C1
,C2
和C3
是介於10點的位置1,2 .... 10,使得C1-1
,C1-2
,...,C1-10
,C2-1
,C2-2
,...,C2-10
,和C3-1
,C3-2
,.. 。,C3-10
存在。在這種情況下,包裝項目P1
也與位置1到10相關聯,如P1-1
,P1-2
,...,P1-10
。
表PACK_BREAKOUT
包含包組件映射,表ITEM_LOCATION
包含項目到位置的關聯。 Pack和Component都被視爲「項目」,並存在於ITEM_LOCATION
中。
理想的情況下,像下面的記錄集以上的情景將是有效的
PACK_NO ITEM NO_OF_LOC
-------- ------ -------------
P1 C1 10
P1 C2 10
P1 C3 10
我有以下返回結果像上面所有這類包裝物品的查詢。
select c.pack_no,c.item,count(a.loc)
from item_location a, pack_breakout c
where c.item=a.item
group by c.pack_no,c.item
order by 1,2;
但是,有一些不一致的結果,如包號。 P2,P4和P5,其中組件與相同數量的位置沒有關聯。
PACK_NO ITEM NO_OF_LOC
-------- ------ -------------
P1 C1 10
P1 C2 10
P1 C3 10
P2 C1 11
P2 C2 5
P2 C3 9
P2 C4 11
P3 C1 21
P3 C2 21
P3 C3 21
P3 C4 21
P3 C5 21
P4 C1 10
P4 C2 15
P5 C1 10
P5 C2 9
P5 C3 10
P5 C4 10
注意,一個包可以有分量的正數(因爲你可以看到P1, P2, P3, P4, and P5
有不同數量的部件)。
我想只拿到組件位置不一致的包。因此,所需的結果集將是 -
PACK_NO ITEM NO_OF_LOC
-------- ------ -------------
P2 C1 11
P2 C2 5
P2 C3 9
P2 C4 11
P4 C1 10
P4 C2 15
P5 C1 10
P5 C2 9
P5 C3 10
P5 C4 10
請注意,即使一個組件不匹配no。作爲包裝內其他組件的位置,整個包裝必須被視爲不一致(如P5
)。
AHHHH! 'MIN(numlocs)<> MAX(numlocs)'是個絕招......真棒。非常感謝。 – Annjawn