Avatar billede miranda Nybegynder
03. august 2001 - 15:22 Der er 7 kommentarer og
2 løsninger

Soterer efter egen orden

Jeg har en table i access som bl.a indeholder NAVN og AFD.KODE på medarbejder i en virksomhed med ca 500 ansatte.
Virksomheden har 5 afdelinger som har fl.g. interne afdelingskoder: dm , aw , t , p , s

En typisk kode for en medarbejder kunne f.eks være: t-lr. Men det er kun det før \"-\" der skal soteres efter.


Eksemple:

NAVN          AFD.KODE
------------------------------
Allan        s-l
Bjarne        s-e
Lis          t-d
Martin        p-l
Morten        p
Otto          dm
Stina        aw       
....o.s.v


Jeg ønsker et SQL-statement der først sortere på AFD.KODE, herefter på NAVN sådan at:

    Otto som er dirktør(dm) kommer før -
    Stina som er Vicedirktør(aw) kommer før -
    Lis som er kvalitets chef(t) kommer før -
    o.s.v......
    Allan som er arbejds-mand(s) kommer før
    Bjarne som også er arbejdsmand


  Hjælp !!!!!
Avatar billede terry Ekspert
03. august 2001 - 15:28 #1
miranda> since when does d come before a?
Avatar billede jakobandersen Nybegynder
03. august 2001 - 15:39 #2
Du kan vel lave en

order by Left(afdkode, 1)
Avatar billede oswald Nybegynder
03. august 2001 - 16:24 #3
Prøv noget i stilen med.

SELECT navn, kode
FROM Ansatte
ORDER BY Switch([kode]=\"dm\",\"1\",[kode]=\"AW\",\"2\",[kode]=\"t\",\"3\");
Avatar billede ldanielsen Nybegynder
05. august 2001 - 13:26 #4
ORDER BY AFD_KODE, Navn

Simpelthen!

I øvrigt: At bruge punktum i kolonnenavne er dumt, og vil let gibve problemer. Hvis du insisterer skal det være:

ORDER BY [AFD.KODE], Navn
Avatar billede euroman28 Nybegynder
06. august 2001 - 22:53 #5
Idanielsen > Dit svar sortere jo ikke så direktøren kommer forest.
Avatar billede miranda Nybegynder
07. august 2001 - 00:41 #6
Oswald > jeg kan godt se hvor du vil hen, men jeg kender kun switch fra Jscript. Ved du hvor jeg finder noget dok. på switch i forbindelse med SQL ??

Avatar billede terry Ekspert
07. august 2001 - 08:15 #7
SQL SERVER BOOKS ONLINE!
Avatar billede oswald Nybegynder
07. august 2001 - 15:51 #8
Jeg ved egentlig ikke hvirfor, men jeg kom til at lave den i Access. Her er en lignende i TSQL (Det er lidt nemmere.).

Select name, case left(xtype,2) when \'s\' then \'2\' when \'p\' then \'1\' when \'u\' then \'3\' when \'pk\' then \'4\' when \'u\' then \'5\' else \'6\' end as sortID from sysobjects order by sortid

Erstat XType med Afd.Kode, Sysobjects med dit tabel navn og hhv \'s\', \'p\', \'u\' osv. med dine koder.
Avatar billede miranda Nybegynder
07. august 2001 - 22:44 #9
Så lykkes det og jeg er blevet Ottos(min chef) bedste ven igen, da han nu står øverst på bl.a. den nye telefonliste på webben.

Tak til alle, men dog mest til Oswald (50 points) og Moonduck (10 points).

Løsningen blev:

ORDER BY LEFT(AFD.KODE,1)=\'D\', LEFT(AFD.KODE,1)=\'A\', LEFT(AFD.KODE,1)=\'T\', LEFT(AFD.KODE,1)=\'P\', LEFT(AFD.KODE,1)=\'S\', NAVN\"

Ret simpelt, nå man nu ved det :) 
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
Computerworld tilbyder specialiserede kurser i database-management

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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger elementleder til System sektionen i Hvidovre

Netcompany A/S

IT Consultant

Everllence

Software Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger AI forretningskonsulent i Ballerup