Opret først en forespørgsel "Q_Afd", der opretter en nøgle ud fra de to byer.
SELECT Afd.*, IIf([Afdeling1]<[Afdeling2],[Afdeling1],[Afdeling2]) & "-" & IIf([Afdeling1]>=[Afdeling2],[Afdeling1],[Afdeling2]) AS A FROM Afd;
Lav så en ny forespørgsel, der finder den første (og her er "første" defineret som posten med det laveste ID):
SELECT Min(Q_Afd.ID) AS MinOfID, First(Q_Afd.Afdeling1) AS FørsteOfAfdeling1, First(Q_Afd.Afdeling2) AS FørsteOfAfdeling2, First(Q_Afd.Beløb1) AS FørsteOfBeløb1, First(Q_Afd.Beløb2) AS FørsteOfBeløb2, First(Q_Afd.Beløb3) AS FørsteOfBeløb3, Q_Afd.A FROM Q_Afd GROUP BY Q_Afd.A ORDER BY Min(Q_Afd.ID);
Tjek den i Designvisning. Så ser det lidt mere overskueligt ud :O)
Synes godt om
Slettet bruger
05. maj 2013 - 14:00#4
Sjovt så forskellig det kan løses - her udnyttes eksklusion af der hvor afdeling1 er lig afdeling2 ved sammenligning af 2 poster.
select * from afd where not id in ( SELECT s.id from afd as s inner join afd as c on s.afdeling1=c.afdeling2 and s.id>c.id)
fdata, mange tak for din l¢sning, den ser ud til at virke fint.
brugerekspert, din l¢sning udelod en masse linier som burde være med i output.
Synes godt om
Slettet bruger
13. maj 2013 - 12:15#6
De udeladte er bypar som 'nyborg horbro' der ikke har en 'horbro nyborg' makker, men hvor en af byerne forkommer i et andet par der optrædder med begge rækkefølger som i 'nyborg odense','odense nyborg'. Det oplagt at join nøglen i selvjoinen skal være:
s.afdeling1=c.afdeling2 and s.afdeling2=c.afdeling1 and s.id>c.id
ovenstående ændring hjalp en del, dog tager foresp¢rgslen meget lang tid at eksekvere (30+ sekunder)
Derudover er antallet af records ikke konsistent, nogle gange lander foresp¢rgslen på 2383 (som er korrekt), men oftest er det 2382, 2381 eller noget helt andet.
Tror det var mig der dummede mig lidt, havde glemt at g¢re ID til PrimaryKey, så det gjorde både at foresp¢rgslen tog lang tid og at den var inkonsistent.
Ser ud til at virke fint nu
Synes godt om
Slettet bruger
13. maj 2013 - 19:25#9
Ja, et indeks på ID, som vist skabes automatisk når den gøres til primary key, gør en væsentlig forskel når der skal sammenlignes om en værdi af id er mindre end en anden. fdata's er nok hurtigere for stort postantal da antallet af mellemresultat poster der, forholder sig linært til antallet af poster, hvorimod selfjoinen giver kvadatet på antallet af poster evalueringer af joinnøglen til udvælgelse.
Så fik vi beriget forummet med 2 løsninger.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.