Kom ihåg mig?

Hjälp med avancerad SQL-sträng

 
Ämnesverktyg Visningsalternativ
Oläst 2009-09-06, 01:04 #1
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Standard Hjälp med avancerad SQL-sträng

Hej!

Jag behöver hjälp med SQL. Jag har en databas med testresultat och jag vill hämta ut de senaste 50 och sortera dem efter resultatet. tex:

SELECT * FROM resultat ORDER BY date DESC LIMIT 50.

Och sedan på denna strängen ORDER BY resultat DESC.

(Jag vet att man kan skriva ORDER BY date DESC, resultat DESC men det löser inte mitt problem).

Hjälp någon?
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-06, 01:44 #2
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Hur ser resultat fältet ut? Är det en siffra?
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-06, 02:00 #3
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Citat:
Ursprungligen postat av KarlRoos Visa inlägg
Hur ser resultat fältet ut? Är det en siffra?
Svaret är ja
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-06, 10:43 #4
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
Principen som jag brukar nyttja:

SELECT * FROM Tabell WHERE PrimaryKey IN (SELECT TOP 50 PrimaryKey FROM Tabell ORDER BY DateCol) ORDER BY ResultCol

Kör du sql-server finns det alternativ med CTE (common table expressions) som är något effektivare.
digiArt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-06, 15:54 #5
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Jag får det inte riktigt att funka:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '50 res_id FROM test_result ORDER BY res_date) ORDER BY res_result

Så här ser SQLn ut:
SELECT * FROM test_result WHERE res_id IN (SELECT TOP 50 res_id FROM test_result ORDER BY res_date) ORDER BY res_result

Hjälp?
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-06, 16:41 #6
Reager Reager är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 151
Reager Reager är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 151
TOP är för SQL-server, motsvarigheten i MySQL är Limit. Dock fungerar det inte att använda Limit i en IN-sats i MySQL (åtminstone inte den version som Binero kör vilket är femman tror jag)
Reager är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-06, 16:45 #7
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Faan också! Vad gör jag då?
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-06, 17:13 #8
RickardPs avatar
RickardP RickardP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 515
RickardP RickardP är inte uppkopplad
Mycket flitig postare
RickardPs avatar
 
Reg.datum: Jun 2004
Inlägg: 515
Låter som du får ta ut resultatet ur första sql frågan och fixa sorteringen efteråt.
RickardP är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-06, 20:30 #9
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
Detta funkar i MySQL för mig:
SELECT * FROM (SELECT * FROM resultat ORDER BY date DESC LIMIT 50) AS s ORDER BY resultat DESC
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-09-09, 05:15 #10
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Perfekt!

Tusen tack!
Lando är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
databas, sql


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

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 16:15.

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