Avatar billede jss Nybegynder
08. december 2004 - 14:31 Der er 11 kommentarer og
1 løsning

Sortere på beregnet værdi

Jeg skal forbedre en admin-side i et system, som en række brugere indtaster skemaer i. Lige nu kører jeg en SQL-syntax med Count, således at jeg kan få listet hvor mange skemaer den enkelte bruger har indtastet. Herfra trækker jeg så (kort fotalt via et join i SQL´en) den enkelte brugers mål (hvor mange skemaer brugeren skal indtaste ialt) og får herved det ental skemaer hver bruger mangler at indtaste = den beregnede værdi.
Nu kan jeg godt tænke mig at sortere på denne beregnede værdi - kan man det og i så fald hvordan ?
Avatar billede overchord Nybegynder
08. december 2004 - 14:34 #1
overordnet princip:
SELECT (maal - indtastet) AS Nyfelt FROM DinTabel ORDER BY (maal - indtastet)
Avatar billede jpvj Nybegynder
08. december 2004 - 14:40 #2
Ville nedenstående virke? Hvis ja, så virker den mere hensigtsmæssig..

SELECT (maal - indtastet) AS Nyfelt FROM DinTabel ORDER BY Nyfelt
Avatar billede jss Nybegynder
08. december 2004 - 14:44 #3
Min nuværende sql:
strSQL = "SELECT U.UserID,U.Navn,Count(T.IntID) AS Antal,U.koeb FROM tdc AS T RIGHT JOIN tblUsers AS U ON T.IntID = U.UserID WHERE U.aktiv = -1 Group by U.Navn,U.UserID,U.koeb Order by Navn asc"

Hvordan får jeg jeres forslag puttet heri ?
Avatar billede jss Nybegynder
08. december 2004 - 14:47 #4
det er den allersidste del jeg ønsker at ændre "... Order by Navn asc" til at sortere på den beregnede værdi (U.koeb - Antal)
Avatar billede overchord Nybegynder
08. december 2004 - 14:47 #5
ok jeg antager at det er en access db du bruger. Den har problemer med at sortere paa alias.
Hvor laver du beregningen i din query? Hvis det er dit Count udtryk som du vil sortere efter bruger du blot ORDER BY Count(T>IntID)
Avatar billede overchord Nybegynder
08. december 2004 - 14:49 #6
aarh ok

altsaa
"SELECT U.UserID,U.Navn,Count(T.IntID) AS Antal,U.koeb, (Count(T.IntID - U.koeb) AS NytFelt FROM tdc AS T RIGHT JOIN tblUsers AS U ON T.IntID = U.UserID WHERE U.aktiv = -1 Group by U.Navn,U.UserID,U.koeb Order by (Count(T.IntID - U.koeb) asc"
Avatar billede jss Nybegynder
08. december 2004 - 14:50 #7
Jeg bruger Access (i det her tilfælde ...)

Jeg laver først beregningen i udskrivningen  - .Fields("koeb")-.Fields("Antal")
Avatar billede jss Nybegynder
08. december 2004 - 14:53 #8
måske man skal over i noget helt andet - noget med at indlæse data i et array og herefter sortere arrayet ?
Avatar billede jss Nybegynder
08. december 2004 - 15:18 #9
overchord >> jamen sådan skal det da gøres - smid et svar
Avatar billede jss Nybegynder
08. december 2004 - 15:31 #10
overchord >> dit forslag 08/12-2004 14:49:24 virker helt perfekt - jeg havde ikke lige refreshed min browser og overså derfor dit forslag ;-) Det med array osv. bliver vist en anden god gang ....
Avatar billede overchord Nybegynder
09. december 2004 - 18:00 #11
lol ok godt at du kunne bruge det :-)
Avatar billede jss Nybegynder
10. december 2004 - 08:48 #12
det er nemlig rigtig godt, for nu har jeg fået min opfattelse til muligheder i SQL fornyet ... :-)
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