Avatar billede mgade Nybegynder
06. august 2002 - 09:47 Der er 6 kommentarer og
2 løsninger

Sortering på Sum

Ehmm.. Jeg har set fx http://www.eksperten.dk/spm/189534 hvilket har rejst et lille håb om at jeg kan få genereret en rapport der udskriver summerne af nogle detaillinier i faldende "sum"-orden. Altså med den højste sum øverst.

Desværre er det query den eksisterende rapport er bygget op over allerede ret indviklet, med "Right" og "left" og jeg skal komme efter dig, (Indviklet, efter min mening ;-)

Jeg havde (har) den plan "B" at loope rundt over recordset'et og lave en temp-base med summen i sit eget felt, hvilket garanteret er fremkommeligt. Spørgsmålet er om der er nogen der har skrevet noget om den slags (helst den lidt smartere SQL-måde) et eller andet sted?

Other ideas?

Bare for sjovs skyld: SQL-en ser allerede sådan ud:

(Det er Nettopoints der er krumtappen - altså feltet der skal sorteres efter)

SELECT DISTINCT Roere.navn, races_rowers.Idklubber, races_rowers.Idraces, races_rowers.Placering, Løb.Idreglement, Løb.BrugKlubPoints, LoebsPointsTabel_1.Point, LoebsPointsTabel_1.Klubpoints, LoebsPointsTabel_1.IdLoebsReglement, IIf([BrugKlubPoints],[Klubpoints],[Point]) AS NettoPoints

FROM ((Løb RIGHT JOIN races_rowers ON Løb.Id = races_rowers.Idraces) LEFT JOIN LoebsPointsTabel AS LoebsPointsTabel_1 ON races_rowers.Placering = LoebsPointsTabel_1.Placering) INNER JOIN Roere ON races_rowers.Idroer = Roere.Id

WHERE (((races_rowers.Placering)=[LoebsPointsTabel_1].[Placering]) AND ((Løb.Idreglement)=[LoebsPointsTabel_1].[IdLoebsReglement]))

ORDER BY Roere.navn, races_rowers.Idraces, races_rowers.Placering;
06. august 2002 - 09:50 #1
Kan du ikke bare lave endnu en forespørgsel, baseret på ovenstående, som sortere i den ønskede rækkefølge og derefter lader denne nye forespørgsel være postkilde i rappoten??

/Thomas
Avatar billede proaccess Nybegynder
06. august 2002 - 09:51 #2
Tilføj "IIf([BrugKlubPoints],[Klubpoints],[Point]) DESC" i din ORDER BY...

SELECT DISTINCT Roere.navn, races_rowers.Idklubber, races_rowers.Idraces, races_rowers.Placering, Løb.Idreglement, Løb.BrugKlubPoints, LoebsPointsTabel_1.Point, LoebsPointsTabel_1.Klubpoints, LoebsPointsTabel_1.IdLoebsReglement, IIf([BrugKlubPoints],[Klubpoints],[Point]) AS NettoPoints

FROM ((Løb RIGHT JOIN races_rowers ON Løb.Id = races_rowers.Idraces) LEFT JOIN LoebsPointsTabel AS LoebsPointsTabel_1 ON races_rowers.Placering = LoebsPointsTabel_1.Placering) INNER JOIN Roere ON races_rowers.Idroer = Roere.Id

WHERE (((races_rowers.Placering)=[LoebsPointsTabel_1].[Placering]) AND ((Løb.Idreglement)=[LoebsPointsTabel_1].[IdLoebsReglement]))

ORDER BY IIf([BrugKlubPoints],[Klubpoints],[Point]) DESC, Roere.navn, races_rowers.Idraces, races_rowers.Placering;
Avatar billede mgade Nybegynder
06. august 2002 - 10:03 #3
Det prøver jeg sq lige (igen) (blev afbrudt af arbejde ;-)
Avatar billede proaccess Nybegynder
06. august 2002 - 10:08 #4
Arbejde skal da også altid komme med diverse afbrydelser ;0)
06. august 2002 - 10:10 #5
Ja, der er ikke noget værre end kunder og arbejde ;o)
Avatar billede mgade Nybegynder
06. august 2002 - 10:11 #6
Yeah.. Og Jeres forslag virkede ret ens!

ORDER BY Sum(PointsBeregning.NettoPoints) DESC fixede det!! Og den SQL-statement der meget ligner proaccess' forslag opstod baseret på thomasjepsens metode.. Also.. No more problemos.. Ca samme løsning =>>> Delte points og MANGE tak!
Avatar billede mgade Nybegynder
06. august 2002 - 10:13 #7
(Umiddelbart viste de begge en ordnet liste efter nettopoints, så ham der havde to nettopoints-records også optrådte 2 gange. Altså må jeg have forklaret mig ringe! Men bare enden er go! :-)
06. august 2002 - 10:13 #8
Gracias :)
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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