kerouacMedlem sedan nov. 200013 inlägg
Jag har en Access-databas med ca 200 poster i. Databasen indexeras med hjälp av ett ID. Varje objekt har ett idnummer som ser ut så t.ex. så här : Ö-232, H-23, T-211. Ett problem jag har är att posternas sorteras på ett sätt som jag inte tycker om. Eftersom det är en bokstav först sorteras de efter bokstaven och därefter med den första siffran i ID. Då kan sortering bli såhär: Ö-211, Ö-22, Ö-222. Jag skulle vilja att det blev såhär istället : Ö-22, Ö-211, Ö-222 dvs sortering efter enbart siffrorna. Kan man greja det?
// Niclas
LarsGMedlem sedan dec. 200012 465 inlägg
select left(id,2),clng(mid(id,3)),*
from t
order by 1,2
------------------
essentitia preter non sans multiplicandum
kerouacMedlem sedan nov. 200013 inlägg
Vart gör jag detta?
// Niclas
LarsGMedlem sedan dec. 200012 465 inlägg
Det finns ett fönster där man kan ställa direkt sql-frågor.
------------------
essentitia preter non sans multiplicandum
LaspMedlem sedan juli 200010 197 inlägg
Du har ju fått den sortering du har begärt när du satte fältet till Text.
Du kan splittra fältet i två
En textdel med bokstaven och med tal för siffrorna
skapa ett index på de två fälten.
Eller gör som LarsG säger i sql strängen
------------------
GvdsSfdtTddv.
kerouacMedlem sedan nov. 200013 inlägg
Jag sjrev in det här i SQL-rutan:
SELECT left(StugID,2), clng(mid(StugID,3)), *
FROM tblStuginfo_1
ORDER BY 1, 2;
Tyvärr så sa Access att det blev ett "Data type mismatch in criteria expression".
LarsGMedlem sedan dec. 200012 465 inlägg
Ser alla stugid likadana ut? Dvs är det alltid två tecken + siffror?
kan du testa den här frågan
select clng(mid(stugid,3)) from tblStuginfo_1
annars är det ett alternativ som Lennart säger att dela upp det i två kolumner
------------------
essentitia preter non sans multiplicandum
kerouacMedlem sedan nov. 200013 inlägg
Problemet är att alla ID inte ser likadana ut. I de flesta fall är det bokstav-siffror men ibland kan det även vara t.ex. Ö-210M . Det kluriga är att ta ut alla siffor ur ID. Man löser alltså inte problemet genom att dela upp i två kolumner. Tror ni att det går att lösa eller får man skippa sorteringen?
//Niclas
LarsGMedlem sedan dec. 200012 465 inlägg
Jo det går, men i så fall måste du dubbellagra data. Du får behålla nuvarande stugid och sedan lagra inledande bokstäver för sig och siffran för sig.
Det skulle gå om man kan skriva egna funktioner i Access som man kan anropa från select-satsen, jag vet inte vilket stöd som finns i Access för sådant.
------------------
essentitia preter non sans multiplicandum
HermanMedlem sedan maj 2001427 inlägg
Sådant stöd finns. Men det går inte att använda funktionerna utanför Access, vi a t.ex. via ODBC/OLE DB.
------------------
En eller annan godbit från pannan