Dette er ikke et fuldstændigt svar, men jeg ønsker ikke at skrive en masse forespørgsler i kommentarer.
Dit hovedmål er at sende information til folk og undgå den situation, hvor én person modtager fax to gange. Så du skal først have en liste over unikke modtagere, som denne:
select distinct otherid
from NR_PVO_120
Hvis én person har to faxnumre, skal du beslutte, hvilket du skal vælge:
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
(Alt dette har du i svar på tidligere spørgsmål)
Hvis du tager denne liste over faxnumre, modtager alle dine modtagere faxen og kun én fax for hver person. Men nogle faxnumre vil ikke blive brugt. Du kan nemt finde 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
Hvis du sender fax til et af disse numre, får nogle mennesker én fax to gange.
Engelsk er ikke mit modersmål, så jeg forstår ikke, hvad du mener, når du siger "uden at opdele faxnumre". Som jeg kan se i dit spørgsmål, skal du muligvis bruge rækkefølgen af faxnumre i dit spørgsmål som nummerprioritet (jo højere tal er placeret i tabellen - jo større sandsynlighed for at bruge det). Det ser ud til, at du kan bruge følgende:
select otherid, fax
from (select otherid, fax, row_number() over (partition by otherid order by row) rn
from NR_PVO_120)
where rn = 1
her row
i order by
klausul er en Row
fra din eksempeltabel.
UPD
P. S. Om min sidste forespørgsel:vi har et bord med en bestemt rækkefølge, og rækkefølgen er vigtig. Vi tager rækker af tabellen linje for linje. Tag første række og indsæt dens otherid
og fax
til resultattabel. Tag derefter næste række. Hvis den indeholder en anden fax
nummer og otherid
, vi tager det, hvis otherid
allerede i vores resultattabel springer vi den over. Spurgte du denne algoritme?