webForumDet fria alternativet

Ta ut medelvärde och gör Update

ASP

13 svar · 226 visningar · startad av Pudolf

Medlem sedan juli 2000221 inlägg
Frågan#1

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!

Medlem sedan juni 200032 967 inlägg
#2

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>

Medlem sedan juli 2000836 inlägg
#3

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

Medlem sedan juli 2000221 inlägg
#4

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

Medlem sedan juli 2000221 inlägg
#5

GÅR det att göra överhuvudtaget?

/mvh Pudolf?

Medlem sedan juli 2000221 inlägg
#6

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

Medlem sedan dec. 200012 464 inlägg
#7

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

Medlem sedan juli 2000221 inlägg
#8

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!

Medlem sedan dec. 200012 464 inlägg
#9

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

Medlem sedan juli 2000221 inlägg
#10

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

Medlem sedan dec. 200012 464 inlägg
#11

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

Medlem sedan juli 2000221 inlägg
#12

det löste sig tillslut..
tack

Medlem sedan dec. 200012 464 inlägg
#13

Hur löste du det?

------------------
essentitia preter non sans multiplicandum

Medlem sedan juli 2000221 inlägg
#14

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 :)

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)