Toon posts:

[ASP] select AVG

Pagina: 1
Acties:
  • 108 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

ik probeer van een aantal gegevens het gemiddelde te krijgen. Nou heb ik gevonden dat je met de volgende statement het gemiddelde van een veld kunt berekenen:

Rs.Open "select AVG(Veldnaam) from Database where Veld2 = '1'", Conn, AdopenStatic

Maar hoe kan ik de waarde weergeven op mijn website? Ik heb echt van alles geprobeerd maar ik kom er niet uit.

  • Yucon
  • Registratie: December 2000
  • Laatst online: 09:30

Yucon

*broem*

dacht eigenlijk zoiets:

Rs.Open "select AVG(Veldnaam) as gemiddelde from Database where Veld2 = '1'", Conn, AdopenStatic

en dan

gemiddelde = RS("gemiddelde")

maar kan ernaast zitten

Verwijderd

Topicstarter
Niet echt.. ik krijg deze foutmelding:

Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.

Verwijderd

Wat in Rs komt te zitten is een recordset. Wat je dan moet doen volgens mij is die recordset weergeven. Dus iets van "response.write rs("veldnaam")" zou het moeten doen, tenminste als je dat gemiddelde op het scherm wil zetten. Je kunt dit volgens mij in een variabele stoppen met
var = rs.("veldnaam"). Ben eigenlijk wel benieuwd of het zo werkt, zelf ook nog nooit geprobeerd :)

Suc6

edit: aanvulling

Verwijderd

Topicstarter
Nee ook niet dan krijg ik de zelfde foutmelding.

Verwijderd

tsja, een simpeler methode is dan misschien om alle gegevens uit de recordset bij elkaar op te tellen. Dus een query "select veldnaam from tabel" en dan een constructie met twee tellertjes, 1 om de som van de velden bij te houden en 1 om het aantal velden bij te houden. Uiteindelijk deel je dan teller 1 door teller 2 en heb je je gemiddelde.

Do while not rs.EOF
teller1 = teller1 + rs.("veldnaam")
teller2 = teller2 + 1
rs.MoveNext
Loop

En dan vervolgens
uiteindelijk kun je dan dus teller1 delen door teller2 voor het gemiddelde.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Op woensdag 18 juli 2001 12:20 schreef PinoPolio het volgende:
Niet echt.. ik krijg deze foutmelding:

Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
Connectie gaat wel goed, maar het item waar je naar verwijst bestaat niet, betekent dus dat je verkeerde naam van column gebruikT

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op woensdag 18 juli 2001 12:31 schreef Shivo het volgende:
tsja, een simpeler methode is dan misschien
Simpeler???
code:
1
2
3
4
5
6
7
Rs.Open "select Veldnaam from Database where Veld2 = '1'", Conn, AdopenStatic
Do while not rs.EOF
 teller1 = teller1 + rs.("veldnaam")
 teller2 = teller2 + 1
 rs.MoveNext
Loop
response.write teller1/teller2

vind jij simpeler dan
code:
1
2
Rs.Open "select AVG(Veldnaam) as gemiddelde from Database where Veld2 = '1'", Conn, AdopenStatic
response.write rs("gemiddelde")

Hmm... goh. :)

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
code:
1
2
3
Rs.Open "select AVG(rij_getallen_ofzo) as Blaat from Database where Veld2 = '1'", Conn, AdopenStatic

response.write Rs("Blaat")

Zo moet ie.

Verwijderd

*schaam*
volgens mij heeft blue-eagle gelijk, ff niet aan gedacht :)

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
SELECT AVG(field) AS [expression]
FROM table
[WHERE ...]

The AVG function is one of the aggregate functions that are used to calculate statistical information for a specified numeric field in a query. The other aggregate functions are: COUNT, MAX, MIN, STDEV, STDEVP, SUM, VAR, VARP. Note that all of these functions return a single value.

The AVG function simply calculates the arithmetic mean (i.e., the sum of the values divided by the number of values). Values which are NULL are not included in the calculations. If the field is just an empty set, no average will be calculated.

This code finds the average hospital stay of those MediCare patients over the age of 65:

SELECT AVG(DaysInHospital) AS [AverageStay]
FROM MediCarePatients
WHERE age > 65

Verwijderd

Topicstarter
Rs.Open "select AVG(rij_getallen_ofzo) as Blaat from Database where Veld2 = '1'", Conn, AdopenStatic
response.write Rs("Blaat")


HET WERKT!!! GAAF!!!

  • Onno
  • Registratie: Juni 1999
  • Niet online
(kijk ik nou zo scheel of heeft Blue-eagle gewoon nog een keer hetzelfde gezegd als Yucon en ik? :?)

  • Yucon
  • Registratie: December 2000
  • Laatst online: 09:30

Yucon

*broem*

Dat vroeg ik me ook net af.. of is er toch een verschil waar ik overheengekeken heb?

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Op woensdag 18 juli 2001 12:51 schreef Onno het volgende:
(kijk ik nou zo scheel of heeft Blue-eagle gewoon nog een keer hetzelfde gezegd als Yucon en ik? :?)
Nee hoor, ik herhaal jullie gouden woorden :)
3 maal is scheepsrecht toch? ;)

http://www.devguru.com/technologies/jetsql/quickref/sum.html

Die link kan er ook nog wel bij denk ik, mooie site om in je favo`s te zetten. Het gaat puur over SQL querys enzo. Dus misschien interessant?

Ik viel trouwens in herhaling door deze code:
code:
1
2
3
4
5
6
7
Rs.Open "select Veldnaam from Database where Veld2 = '1'", Conn, AdopenStatic
Do while not rs.EOF
 teller1 = teller1 + rs.("veldnaam")
 teller2 = teller2 + 1
 rs.MoveNext
Loop
response.write teller1/teller2

Want hier heb je zo goed als niks aan als je een database van > 100 mb hebt.

Verwijderd

code:
1
2
3
4
5
6
7
Rs.Open "select Veldnaam from Database where Veld2 = '1'", Conn, AdopenStatic
Do while not rs.EOF
 teller1 = teller1 + rs.("veldnaam")
 teller2 = teller2 + 1
 rs.MoveNext
Loop
response.write teller1/teller2

Want hier heb je zo goed als niks aan als je een database van > 100 mb hebt.
Om over een Do While Not RS.EOF-loop maar niet te beginnen :r

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13:40

Crazy D

I think we should take a look.

Op woensdag 18 juli 2001 13:07 schreef Blue-eagle het volgende:
Want hier heb je zo goed als niks aan als je een database van > 100 mb hebt.
Als je geen haast hebt om je resultaten op het scherm te zien... :D
Op woensdag 18 juli 2001 13:58 schreef ml1 het volgende:
Om over een Do While Not RS.EOF-loop maar niet te beginnen :r
:? ff zin om te flamen, of heb je ook nog argumenten?

Exact expert nodig?

Pagina: 1