18. marts 2004 - 21:45Der er
11 kommentarer og 1 løsning
Udvælg poster og udregn gennemsnit heraf.
Kan man udvælge nogle poster fra sin database og derefter udregne et gennemsnit? Jeg har en tabel, i denne er der et felt med type, enten hund eller kat. Og et felt med disses alder. Kan man udvælge alle hunde og derefter lave et gennemsnit af deres alder?
strSQL = "Select * From dyrdata Where Type = 'hund'"
Jeg tror man måske kan bruge AVG, men det er bare hvordan?
Længere nede på siden laves denne: Response.Write "<br><br>Gennemsnitsalder for hunde er: " & strSQL1 ... Response.Write "<br><br>Gennemsnitsalder for katte er: " & strSQL2
du skal eksekvere de 2 ovenstående sqlsætninger for med et recordset / connection.
fx. strSQL1 = Select AVG(alder) as hundalder From dyrdata Where Type = 'hund'" strSQL2 = Select AVG(alder) as katalder From dyrdata Where Type = 'kat'" set rs = server.createobject("adodb.connection") set rs2 = server.createobject("adodb.connection") rs2.opem DSN rs.open DSN set rs = rs.execute(strSQL1) set rs2 = rs2.execute(strSQL2)
Længere nede på siden laves denne: Response.Write "<br><br>Gennemsnitsalder for hunde er: " & rs("hundalder") ... Response.Write "<br><br>Gennemsnitsalder for katte er: " & rs("katalder")
Så ser det ud som om det virker. Kanon. Jeg har ikke selv lige prøvet at regne efter, men jeg går ud fra det er til at stole på. Men tjekker lige imorgen.
Nu da jeg er ret ny i ASP(og ikke har brugt recordset/connection før), blev jeg lidt i tvivl om min kode, bla. om min 'Conn.Open DSN' er sat korekt. Nu hvor der er kommet en 'rs2.open DSN' ind også. Kunne I ikke lige kigge på koden og se om det er okay?
strSQL1 = "Select AVG(alder) as hundalder From dyrdata Where Type = 'hund'" strSQL2 = "Select AVG(alder) as katalder From dyrdata Where Type = 'kat'" set rs1 = server.createobject("adodb.connection") set rs2 = server.createobject("adodb.connection") rs2.open DSN rs1.open DSN set rs1 = rs1.execute(strSQL1) set rs2 = rs2.execute(strSQL2)
Jeg er ikke så god til ASP, men dit spm omhandler SQL og det kan jeg finde ud af. Der findes en lækker lille tutorial på dansk her, der kan du helt sikkert få et par gode begynder fifs :o) http://www.html.dk/tutorials/asp/
Det bliver beregnet på alle poster i databasen. Også dem hvor der ikke er angivet nogen alder. Hvis du vil undgå at de medregnes skal du indsætte WHERE alder NOT LIKE NULL
Okay, men det jeg tænkte på var at beregningen af Select AVG(alder) as hundalder From dyrdata Where Type = 'hund'" Udgør et antal poster, dette antal vil jeg gerne vide.
mystisk at mit svar stadig er åbent når spørgsmålet er lukket..?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.