Avatar billede Motjida Novice
23. maj 2013 - 20:57 Der er 3 kommentarer og
1 løsning

Eliminering af data (fortsat)

Hej eksperter,

Mit problem relaterer til et tidligere spørgsmål jeg har fået besvaret (http://www.eksperten.dk/spm/980666).

De rapporter der danner grundlag for databasen har ændret sig, og det giver mig nogle problemer.

Nyt eksempel data er:

Nyborg | Odense | 559 | 0 | -559
Esbjerg | Herlev | 0 | 0 | 0
Odense | Nyborg | 0 | 558 | 558
Aarhus | K¢benhavn | 400 | 600 | 200
Herlev | Esbjerg | -591 | -591 | 0

Forskellen fra tidligere er at nu skal de linjer der har 2 ben summes sammen (skal kun bruge de 2 bynavne og sidste tal kolonne). Som f¢r skal de linier der kun har 1 ben også inkluderes, der vil der bare ikke være et modstykke at summe med.

Dvs det resultat jeg leder efter (per eksempel data) er:

Nyborg | Odense | -1
Esbjerg | Herlev | 0
Aarhus | K¢benhavn | 200

Håber det giver mening :-)

Med Venlig Hilsen
Motjida
Avatar billede fdata Forsker
23. maj 2013 - 21:47 #1
Brug samme to-trins raket som sidst; men erstat andet trin med:

SELECT First(Q_Afd.Afdeling1) AS FørsteOfAfdeling1, First(Q_Afd.Afdeling2) AS FørsteOfAfdeling2, Sum(Q_Afd.Beløb3) AS SumOfBeløb3
FROM Q_Afd
GROUP BY Q_Afd.A;
Avatar billede Slettet bruger
24. maj 2013 - 09:21 #2
Sumudtrykket bliver lidt mere kompliceret i den alternative måde:

SELECT
id,
afdeling1,
afdeling2,
(select sum(beløb3) from afd as q where (q.afdeling1=afd.afdeling1 and q.afdeling2=afd.afdeling2) or (q.afdeling1=afd.afdeling2 and q.afdeling2=afd.afdeling1)) as beløb3sum
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.afdeling2=c.afdeling1 and s.id>c.id);
Avatar billede Motjida Novice
24. maj 2013 - 10:47 #3
Det ser ud til 2 trins raketten ser lidt mere overskuelig ud for andre brugere, og den virker ganske fint.

Selv med index er brugerekspert's forslag en smule langsomt at eksekvere, så jeg tror jeg holde rmig til fdata's svar.

mange tak begge for jeres forslag :-)
Avatar billede fdata Forsker
24. maj 2013 - 10:50 #4
Velbekomme ;O)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB