wborgMedlem sedan dec. 2003209 inlägg Hej,
jag undrar hur man gör för att räkna ut de 7 största av i detta fall 9 tal från en db (Access) som har följande fält:
ID [Räknare] [Primärnyckel]
Del1 [Tal], Del2 [Tal], Del3 [Tal], Del4 [Tal], Del5 [Tal], Del6 [Tal], Del7 [Tal], Del8 [Tal], Del9 [Tal].
Låt säga att värdena är:
Del1 = 20
Del2 = 20
Del3 = 10
Del4 = 10
Del5 = 20
Del6 = 20
Del7 = 20
Del8 = 20
Del9 = 20
I detta fall bör alltså resultatet bli 140. Sedan så ska detta sorteras så att det ID som har störst värde hamnar överst.
Någon som har något bra sätt att göra detta på?
Tacksam för alla svar.
Med vänlig hälsning
/wborg
SELECT sum(räknare) as totalt, * ORDER BY räknare DESC LIMIT 7
Kanske funkar?
K@llenMedlem sedan mars 20032 667 inlägg LIMIT är unikt för MySQL. I access använder man TOP istället. ;-)
wborg: jag hade kollat över tabellstrukturen som ett första steg. Att rada upp kolumnerna så i en tabell är inget bra. Vad händer om du vill lägga på 10 värden till?
Bryt loss alla dina Delx till en egen tabell. :)
@ndersMedlem sedan juni 200032 969 inlägg K@llen har helt rätt. Gör om, gör rätt. Genvägar äro senvägar, och ställer i stort sett alltid till det.
(Och snälla, posta inte frågor om SQL i ASP-forumet, utan i det forum som är avsett för det, SQL-forumet.)
de ante mig att dom inte kan enas, trodde också att delx va inlägg i databasen och inte egna fält
/P
wborgMedlem sedan dec. 2003209 inlägg K@llen:
Okey
tanken med det jag bygger är att man skall kunna hitta resultat ifrån tidigare säsonger och inte endast det aktuella året.
Om jag bryter ut alla Delx till egna separata tabeller, skall jag då även slänga med en kolumn för År som representerar det år som alla DelX avser?
K@llenMedlem sedan mars 20032 667 inlägg Förklara lite vad du vill åstadkomma med dina kolumner så ska vi försöka hjälpa dig på bästa sätt. ;)
wborgMedlem sedan dec. 2003209 inlägg Okej K@llen jag gör ett nytt försök :)
Databasen är till för att spara resultat från golftävlingar, i år blir det 9 deltävlingar varav dom 7 bästa för varje enskild spelare ska räknas. Detta blir sedan underlag för att se vilka 16 spelare som gått till final.
När en säsong är över så "arkiveras" resultaten i en resultatbörs så att man alltid kan gå tillbaka i tiden och titta på sina resultat.
Som databasen ser ut idag så är det en tabell för varje år och i varje tabell så är det en kolumn för varje runda (V1, V2 osv), en kolumn för totalt antal slag (total), en kolumn för poäng (poang) och en kolumn för Klass (Class).
Av dom 9 deltävlingar som ska spelas i år så räknas alltså bara dom 7 bästa delpoängen man fått ihop, det är alltså kolumnen poang man ska ta ut dom 7 högsta resultaten från på varje spelare och addera dessa och presentera den totala poängen på sidan i fallande ordning.
Det är säkert så att jag och min kompis har byggt databasen på ett väldigt dumt sätt men vi har försökt så gott vi kunnat. Vill du så kan jag skicka databasen till dig så att du får se hur rörigt det ser ut idag.
Nu drog jag allt från den version som är skarp idag, det första inlägget handlade mest om hur man listade ut vilka 7 deltävlingars poäng man skulle lägga ihop (med en testdatabas).
Hoppas detta förklarade lite tydligare, är det något som är otydligt så försöker jag förenkla det ytterligare. Det är lätt hänt att man förklarar på ett sätt man själv tycker är självklart men som kanske inte är det pga att man själv tycker att det är självklart.
Tacksam för all hjälp jag kan få.
/wborg