Avatar billede Slettet bruger
09. marts 2001 - 19:35 Der er 13 kommentarer og
1 løsning

Hvordan ligges felter sammen?

Hvis man antageligvis har tre felter:
- Alfa
- Beta
- Gamma

Felterne angiver hver en pointfaktor, såledess det totale antal point for en bruger bliver:

Alfa*5+Beta*15+Gamma*50

Ud fra dette tal, skal hele databasen sorteres, således vedkommende med flest point ligger øverst.

Det er lidt indviklet ;o) Så skriv en kommentar hvis du er i tvivl...
Avatar billede erikjacobsen Ekspert
09. marts 2001 - 19:45 #1
I Mysql ville jeg skrive noget i retning af

  select navn,alfa*5+beta*15+gamma*50 as point from tabellen order by point

Men hvilken database bruger du?
Avatar billede Slettet bruger
09. marts 2001 - 19:58 #2
Jeg bruger Access, men det har ikke så meget at sige i SQL jo ;o) Men jeg konstruerede denne:

SQLstmt = \"SELECT alfa*5 + beta*15 + gamma*50 AS point FROM Brugere ORDER BY point\"
Set RS = DB.Execute (SQLstmt)

Men den kommer med fejlen:
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
Avatar billede erikjacobsen Ekspert
09. marts 2001 - 20:06 #3
Joh, det er en anden SQL i Access. Så den går ikke med denne metode.
Avatar billede Slettet bruger
09. marts 2001 - 20:07 #4
;o) Ok...hvad gør man så?
Avatar billede erikjacobsen Ekspert
09. marts 2001 - 20:10 #5
Skift til MySql :)  Jeg ved ikke hvad man gør i Access. I hvert fald ikke andet
end at læse dem allesammen ind i et array og sortere dem i ASP-koden. Det kan
du sikkert få en ASP-er til at gøre for dig...
Avatar billede Slettet bruger
09. marts 2001 - 20:17 #6
Mit webhotel understøtter ikke mySQL
Men hvordan laver man en rutine som sorterer et array. Så vidt jeg er orienteret findes der ikke en direkte kommando
Avatar billede erikjacobsen Ekspert
09. marts 2001 - 20:21 #7
Jah, man kunne jo bare lave en sortering selv. Hvor mange data er der tale om ??
Avatar billede Slettet bruger
09. marts 2001 - 20:22 #8
fra 50 records til, ja...500 - 1000 vil jeg tro
Avatar billede erikjacobsen Ekspert
09. marts 2001 - 21:17 #9
det går vel an.... men jeg har ikke tid til at lave det for dig
Avatar billede olufsand Nybegynder
09. marts 2001 - 22:46 #10
Prøv denne:
SQLstmt = \"SELECT ((alfa*5) + (beta*15) + (gamma*50)) AS point FROM Brugere ORDER BY point\"
Avatar billede Slettet bruger
09. marts 2001 - 22:54 #11
Samme fejl....
Avatar billede olufsand Nybegynder
09. marts 2001 - 23:05 #12
Det er fordi der ikke er et felt der hedder point, under sorteringen, men prøv dette:

SELECT (alfa*5 + beta*15 + gamma*50) AS point FROM Brugere ORDER BY (alfa*5 + beta*15 + gamma*50)

Avatar billede sone Nybegynder
12. marts 2001 - 10:38 #13
Hvis tabellen hedder p, så kan man lave følgende:

SELECT navn, point FROM (select navn,alfa*5+beta*15+gamma*50 as point from p) order by point
Avatar billede Slettet bruger
12. marts 2001 - 19:40 #14
Jeg har fundet en anden løsning, hvor der oprettes et ekstra felt med samlet antal point
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
Kurser inden for grundlæggende programmering

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