varför skall du ha det i en kolumn i databasen?
varför inte räkna ut det då det frågas efter? så hade nog jag gjort iaf...
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
13 svar · 226 visningar · startad av Pudolf
Hej. Har ett problem här, som någon kanske kan svaret på. Jag har alltså kolumner; antalroster och besokarbetyg.
Och medelbetyg fås genom att dividera besokarbetyg med antalroster. Sedan har jag en kolumn som heter just medelbetyg.
Där vill jag att det ska köras en UPDATE som uppdaterar kolumnen medelbetyg med divisionen besokarbetyg/antalroster
Det ska väl gå med ROUND, men jag vet inte hur det blir med UPDATE samtidigt.
Något såhär, den ska samtidigt avrundas till EN decimal i UPDATE:en.
antalroster = RS("antalroster")
besokarbetyg = RS("besokarbetyg")
medelbetyg = ROUND(besokarbetyg / antalroster, 1)
Jätte tacksam för svar!
/mvh Pudolf!
varför skall du ha det i en kolumn i databasen?
varför inte räkna ut det då det frågas efter? så hade nog jag gjort iaf...
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
varför inte räkna ut det då det frågas efter?
För att då kan man inte göra en ORDER BY på medelvärdet, eller?
Men varför inte strunta i att avrunda när det lagras i databasen och göra det när det skrivs ut i stället?
/ J
Eftersom jag hade tänkt använda det för att sortera efter kolumnen medelbetyg och inte bara kunna visa det på den sidan utan också på andra sidor.
Är det krångligt att göra en UPDATE så som jag vill ha den? Mycket kod och så :q
hmm.. går det att göra på något annat sätt än det jag ville? (lägga in medelvärde i databas) ?
Men om jag gör på något annat sätt, kan jag då sortera efter medelvärdet på något sätt?
/mvh pudolf
Jag förstår inte heller varför man skall lägga in medelvärdet i databasen. Du kan ju räkna ut det i din select och använda det i order by
select ROUND((betyg+0.0)/(antal+0.0),1)
as average from yur_table
order by average desc
Annars är det inget problem att lägga in uttrycket direkt i en update. (Man kan också uppdatera flera kolumner samtidigt; i ett tidigar inlägg såg jag att du hade flera update vilket är onödigt)
update your_table
set col1 = round(12.0/4.0,1),
col2 = 12,
col3 = 4
where col4 = 4711
------------------
essentitia preter non sans multiplicandum
Har testat LarsG's kod lite men den vill inte sortera efter "medelbetyg".
SQLb = "SELECT top 5 id, text, namn, rubrik, ROUND(besokarbetyg/antalroster,1) as medelbetyg FROM Artikel WHERE namn = 'laban' ORDER BY medelbetyg DESC "
Set RS = Connection.Execute(SQLb)
Om jag tar ORDER BY rubrik DESC, så fungerar det, om jag tar medelbetyg DESC visas bara "ingeting hittades" (Den texten visas om RS.EOF är sant)
Vad är fel?
Tacksam för svar!
Hm, det fungerar bra i den DBMS (det är inte Access)som jag använder.
En möjlighet är att man kan ange ett kolumnnummer i stället för namnet, dvs
SQLb = "SELECT top 5 id, text, namn, rubrik, ROUND(besokarbetyg/antalroster,1) as medelbetyg FROM Artikel WHERE namn = 'laban' ORDER BY 5 DESC "
------------------
essentitia preter non sans multiplicandum
hej,
det fungerar, men siffrorna ställer sig inte i ordning. Jag har dessa siffror:
Rubrik 1 - 5,1
Rubrik 2 - 6,5
Rubrik 3 - 6,4
Rubrik 4 - 8,7
Rubrik 5 - 7,9
Så blir det om jag har ORDER BY 5 Desc
Med ORDER BY 5 Asc blir det såhär:
Rubrik 1 - 7,9
Rubrik 2 - 8,7
Rubrik 3 - 5,1
Rubrik 4 - 6,5
Rubrik 5 - 6,4
Varför blir det så? Finns det något sätt att få den att fungera, Access använder jag.
/mvh pudolf
Nej, jag förstår inte varför det inte fungerar.
Tyvärr så har jag inte tillgång till Access så jag kan inte testa något.
------------------
essentitia preter non sans multiplicandum
det löste sig tillslut..
tack
det var ett slarvfel från min sida.
jag hade visst 6 kolumner med, s¨jag ändrade till ORDER BY 6 DESC
Så enkelt var det :)