Det här är inte ett fullständigt svar, men jag vill inte skriva en massa frågor i kommentarer.
Ditt huvudsakliga mål är att skicka information till människor och att undvika situationen när en person får fax två gånger. Så du behöver först en lista med unika mottagare, så här:
select distinct otherid
from NR_PVO_120
Om en person har två faxnummer måste du bestämma vilket du ska välja:
select otherid, fax
from (select otherid, fax, row_number() over (partition by otherid order by <choosing rule>) rn
from NR_PVO_120)
where rn = 1
(Allt detta har du i svaren på föregående fråga)
Om du tar den här listan med faxnummer får alla dina mottagare faxet och bara ett fax för varje person. Men vissa faxnummer kommer inte att användas. Du kan enkelt hitta dem:
select otherid, fax
from (select otherid, fax, row_number() over (partition by otherid order by <choosing rule>) rn
from NR_PVO_120)
where rn > 1
Om du skickar fax till något av de här numren får en del människor ett fax två gånger.
Engelska är inte mitt modersmål, så jag förstår inte vad du menar när du säger "utan att dela upp faxnummer". Som jag kan se i din fråga, kanske du måste använda faxnummerordningen i din fråga som nummerprioritet (ju högre nummer finns i tabellen - desto högre sannolikhet att använda det). Det verkar som att du kan använda följande:
select otherid, fax
from (select otherid, fax, row_number() over (partition by otherid order by row) rn
from NR_PVO_120)
where rn = 1
här row
i order by
sats är en Row
från din exempeltabell.
UPD
P. S. Om min senaste fråga:vi har ett bord med en viss ordning, och ordningen är viktig. Vi tar rader av tabellen rad för rad. Ta första raden och sätt dess otherid
och fax
till resultattabellen. Ta sedan nästa rad. Om den innehåller ett annat fax
nummer och otherid
, vi tar det, om otherid
redan i vår resultattabell hoppar vi över den. Frågade du den här algoritmen?