RikardMedlem sedan dec. 199917 055 inlägg Jag har stött på ett bekymmer med sortering. Det uppstod i samband med att
SELECT DISTINCT LEFT(word,1) as wi FROM t_word t1 INNER JOIN t_score t2 ON t1.wordid = t2.wordid
GROUP BY t1.wordid, t1.word, t1.public HAVING t1.public >= " & strPublic & " AND " & FV
ersatte den tidigare SQL-satsen:
SELECT DISTINCT LEFT (word, 1) AS word FROM t_word WHERE status = " & strStatus & " ORDER BY 1
Problemet är att den övre koden medför att Ä dyker upp mellan A och B istället för efter Z!?
Du har ju inget Order By i den övre???
RikardMedlem sedan dec. 199917 055 inlägg ORDER BY får inte köras ihop med GROUP BY och HAVING? :)
Engine^Medlem sedan dec. 20003 887 inlägg Codepage-inställning?
SELECT DISTINCT LEFT(word,1) as wi
FROM t_word t1
INNER JOIN t_score t2
ON t1.wordid = t2.wordid
GROUP BY t1.wordid, t1.word, t1.public
HAVING t1.public >= " & strPublic & " AND " & FV
ORDER BY 1
RikardMedlem sedan dec. 199917 055 inlägg
Engine^ skrev:
Codepage-inställning?
Session.LCID = 1053
SELECT DISTINCT LEFT(word,1) as wi
FROM t_word t1
INNER JOIN t_score t2
ON t1.wordid = t2.wordid
GROUP BY t1.wordid, t1.word, t1.public
HAVING t1.public >= " & strPublic & " AND " & FV & "
ORDER BY 1
Gjorde tyvärr ingen skillnad.
nikoMedlem sedan juni 20022 599 inlägg SELECT DISTINCT LEFT(word,1) as wi, Asc(UCase(wi))
..
ORDER BY [b]2[/b]
RikardMedlem sedan dec. 199917 055 inlägg Bäver! Nu funkar det ju!? :o :D
Stort tack Niko! Igen! :D
nikoMedlem sedan juni 20022 599 inlägg
Rikard skrev:
Nu funkar det ju!?
Funkar och funkar .. Det löser problemet som du formulerade det ("Ä" hamnar före "Z"). Har du sen, det inte helt ovanliga, kravet att "Å" ska hamna före "Ä" så är nog det smartaste att ställa in svensk sorteringsordning via Access frontend-program.
RikardMedlem sedan dec. 199917 055 inlägg Det har jag redan gjort - tror jag. Jag var inne och kollade på det i natt och det är svensk-/finsk-sortering.
nikoMedlem sedan juni 20022 599 inlägg
Jag var inne och kollade på det i natt och det är svensk-/finsk-sortering.
Det är inte så att Access är inställt på att alla nya databaser med svensk sortering? Prova att exportera fram och tillbaka till föregånde version.
Annars kan man ju alltid använda brute-force:
select distinct left(word,1) as w1, asc(ucase(w1)) as ascii, ascii\196, ascii\197, ascii\214
...
...
order by 3, 5, 4 desc, 1
Inte så särskilt snyggt, men det funkar.
RikardMedlem sedan dec. 199917 055 inlägg Men det känns inte som att det är det som är problemet rent logiskt?
Rikard skrev:
Jag har stött på ett bekymmer med sortering. Det uppstod i samband med att
...kod...
ersatte den tidigare SQL-satsen:
...mera kod...
Varför fungerade det i sådant fall förut? :)
nikoMedlem sedan juni 20022 599 inlägg
Varför fungerade det i sådant fall förut?
Bra fråga. Din ursprungliga och Engine^s borde väl inte kunna skilja sig åt i sorteringsordningen? Fast å andra sidan så förstår jag inte vad SQL:en gör. Varför gör du öht en GROUP BY - HAVING när du inte har några aggregatfunktioner i SELECT:en? Varför inte bara en WHERE? Vad innehåller "FV"?
RikardMedlem sedan dec. 199917 055 inlägg FV innehåller ett av följande tre värden:
FVRejected = "SUM(t2.score)<-(" & strScore & "-COUNT(t2.score))*2"
FVActive = "ABS(SUM(t2.score))<=ABS((" & strScore & "-COUNT(t2.score))*2)"
FVDefault = "SUM(t2.score)>(" & strScore & "-COUNT(t2.score))*2"
nikoMedlem sedan juni 20022 599 inlägg OK. Så "FV" innehöll aggregatfunktioner .. Men oavsett vad: Jag har ingen förklaring på hur sorteringsordningen på å,ä och ö skulle kunna påverkas enbart av att du lägger till en join. Tyvärr.
Om du vill forska vidare så kan du kanske kolla om det sker samma fenomen:
1. Som fråga direkt i Access.
2. Med ODBC-drivern.
3. Med OLEDB-drivern.
RikardMedlem sedan dec. 199917 055 inlägg Det verkar hänga ihop med GROUP BY-funktionen? Jag testade lite andra grejjer och den verkar alltid sortera i "felaktig" ordning när jag kör GROUP BY.
ORDER BY har utelämnats i samtliga mina tester.
Det kommer nog en egen tråd om detta vartefter. :)
Men tack för ditt engagemant niko! :D
nikoMedlem sedan juni 20022 599 inlägg
ORDER BY har utelämnats i samtliga mina tester.
Men varför det? Utan ORDER BY kan du inte förvänta dig nån väldefinierad ordning alls. Det märkliga ligger ju, som sagt, i att din första SQL och Engine^s skulle kunna ge olika sortering (på samma databas).
RikardMedlem sedan dec. 199917 055 inlägg
niko skrev:
Men varför det? Utan ORDER BY kan du inte förvänta dig nån väldefinierad ordning alls.
Precis. Och i samtliga fall på så har samma resultat uppnåtts - resultatet har sorterats i bokstavsordning. Även i andra tabeller.
Det finner jag lite mysko. :)
RikardMedlem sedan dec. 199917 055 inlägg
niko skrev:
Det är inte så att Access är inställt på att alla nya databaser med svensk sortering? Prova att exportera fram och tillbaka till föregånde version.
:r x 5
1. Jag har inte haft ord som börjar på å, ä eller ö tidigare. Det kom jag på när jag tänkte till på allvar.
2. Sorteringsordningen ändrade på sig snällt och vänligt så fort jag komprimerade databasen... (varpå sorteringsordningen ställdes om till just svensk/finsk)
Case, definitely closed... :r