Kom ihåg mig?
Home Menu

Menu


SQL: ORDER BY

 
Ämnesverktyg Visningsalternativ
Oläst 2008-08-20, 08:59 #11
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Att sort inte funkar kan ju bero på begränsningar i access.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 09:37 #12
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
Citat:
Originally posted by Lindahl@Aug 19 2008, 23:47
Se där, såna grejer gillar vi! Efter lite Access-anpassning ser min SQL-sats nu ut såhär:
Kod:
SELECT *,SWITCH(id=5,1,id=9,2,id=2,3) AS ranking FROM table WHERE id IN (5,9,2) ORDER BY ranking ASC
Detta funkar dock inte (fel '80040e10')

Tar jag bort det sista ORDER BY så får jag dock inga felmeddelanden utan mina objekt plockas ut.
Kod:
SELECT *,SWITCH(id=5,1,id=9,2,id=2,3) AS ranking FROM table WHERE id IN (5,9,2)
Det märkliga här är bara det att om jag kör denna fråga i mitt webbaserade databasinterface så ser jag att det skapas en kolumn som heter just 'ranking' och att denna innehåller rätt värden (mellan 1 och 3). Varför går det då inte att köra ORDER BY på den kolumnen? Mycket märkligt, men ett bra steg på väg!
Workaround: Använda SELECT INTO och in i en temporär och sen köra en SELECT med sort. Visst, två frågor men ändå rätt bra.
Westman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 09:38 #13
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Jag har nu fått till en lösning som fungerar, jag har helt enkelt valt att sortera mitt RecordSet som jag får ut som resultat av SQL-frågan.
Kod:
rs.Sort="ranking"
Jag nöjer mig med den varianten tills dess att jag bygger om databasstrukturen.

Särskilt tack till eg0master som fick mig på rätt spår
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 09:47 #14
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Eller så lätt var det inte förresten... Nu när allting funkade så skulle jag ändra på antalet till 30, men då får jag felmeddelande om att min SQL-sats är för komplex. Max verkar vara 14. Varför ska det alltid krångla? Jaja, kör väl med 14 då så länge...
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 10:00 #15
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Eller sluta köra Access... Access fungerar dåligt så snart du får många samtidiga besökare.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 10:03 #16
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Jo, jag vet... Fast jag gillar enkelheten att databasen är i en enda liten fil så att jag lätt kan kopiera över den till min utvecklingsmaskin.
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 11:04 #17
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Citat:
Originally posted by Lindahl@Aug 20 2008, 10:03
Jo, jag vet... Fast jag gillar enkelheten att databasen är i en enda liten fil så att jag lätt kan kopiera över den till min utvecklingsmaskin.
Själv gillar jag enkelheten i mitt arbete att kunna arbeta med en riktig databas och inte ett dåligt substitut som gör att jag måste göra workarounds så fort jag vill göra ngt annat än select *...
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 11:07 #18
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Jag har haft planer på att gå över till MySQL, men jag har inte hunnit sätta mig in i det. Fast det kan vi ta en ny tråd om när det blir dags, tills dess fortsätter jag med leksaksdatabasen. Får börja med att designa om den, och ta det lite i småsteg.
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 13:13 #19
SkyNet SkyNet är inte uppkopplad
Validating
 
Reg.datum: Apr 2004
Inlägg: 99
SkyNet SkyNet är inte uppkopplad
Validating
 
Reg.datum: Apr 2004
Inlägg: 99
Citat:
Originally posted by Lindahl@Aug 19 2008, 10:43
Har en SQL-sats:
SELECT * FROM table WHERE id IN (5,9,2)

Nu är problemet att jag vill ha dit en ORDER BY som sorterar just efter ordningen som anges i parametern, i detta fallet 5,9,2.
Visserligen är det Access du använder och SQL-syntaxen inte är samma som i MySQL, men så här enkelt hade du löst det i MySQL, Kanske finns något liknade att använda i Access:

SELECT * FROM table WHERE id IN (5, 9, 2) ORDER BY FIELD (id, 5, 9, 2)
SkyNet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-20, 14:10 #20
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Och för den som är nyfiken blir SQL:en för det hela om man kör med tabellerna i samma databas såhär:
Kod:
SELECT TOP 30 objekt.* FROM ranking LEFT JOIN objekt ON objekt.id=ranking.id ORDER BY ranking.count DESC
(japp, tog förnuftet till fånga och slängde in allt i samma databas)

Lite enklare... Men jag lärde mig en hel del på vägen, som att man kan köra SWITCH-satser, det var nytt för mig.
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 05:56.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017