11. juli 2007 - 11:06Der er
7 kommentarer og 2 løsninger
SQL order by problem
Hejsa, jeg har en tabel med en masse ordrer i, og denne tabel vil jeg gerne kunne sortere efter bl.a. kundens navn. I Ordretabellen har jeg blot et kunde id der refererer til en kundetabel, og det giver derfor ikke meget mening at "ORDER BY kunde_id".
Jeg vil istedet order mine ordrer efter kundens navn, som jo står i en anden tabel.
Så jeg skal bruge noget i stil med :
SELECT * FROM ordrer ORDER by (navn fra kundetabel, udfra kunde_id)
Håber det giver mening - 200 point for et hurtigt svar :) På forhånd tak!
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Præcis som dette :) Jeg har dog lidt problemer med at få det til at virke i praksis... Min SQL ser sådan her ud:
SELECT DISTINCT ordre_nummer,afgang_timestamp FROM Ordrer WHERE site = 'x' AND omraade = 'y' AND status = 'aktiv' ORDER by ??? ASC
Og jeg prøver så at omskrive den efter dit eksempel til:
SELECT DISTINCT ordre_nummer,afgang_timestamp FROM Ordrer o, efternavn FROM Kunder k WHERE o.site = 'x' AND o.omraade = 'y' AND o.status = 'aktiv' ORDER by k.efternavn ASC
Men det virker ikke :( Nogen idéer? PS: Hvis du lægger et svar, ska du nok få pointene - du svarede jo trods alt - bare mig der ikke er SQL haj nok :)
SELECT DISTINCT o.ordre_nummer,o.afgang_timestamp FROM Ordrer o, Kunder k WHERE o.site = 'x' AND o.omraade = 'y' AND o.status = 'aktiv' ORDER by k.efternavn ASC
Og så skal du fortælle hvad referencen er. F ex AND o.ordre_nummer = k.ordre_nummer
Tror du ikke bare at du skal sortere efter noget mere: SELECT DISTINCT ordre_nummer,afgang_timestamp FROM Ordrer o, Kunder k WHERE o.kunde_id = k.kunde_id AND o.site = 'x' AND o.omraade = 'y' AND o.status = 'aktiv' ORDER by k.efternavn ASC, k.kunde_id, o.ordre_nummer
og så manglede du en join af de to tabeller (where o.kunde_id=k.kunde_id) iøvrigt glemte jeg selv efternavnet i sql'en... SELECT (DISTINCT o.ordre_nummer), k.efternavn, o.afgang_timestamp FROM Ordrer o, Kunder k WHERE o.kunde_id = k.kunde_id AND o.site = 'x' AND o.omraade = 'y' AND o.status = 'aktiv' ORDER by k.efternavn ASC, k.kunde_id, o.ordre_nummer
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.