Avatar billede hf Nybegynder
03. september 2001 - 10:47 Der er 24 kommentarer og
1 løsning

Sammentælling

Jeg har en database med en tabel som indeholder hold-id og point. Tabellen opdateres løbende med nye poster hvergang holdene får point. På ASP-siden skal jeg gengive en top-10 liste sorteret efter point, så det hold, der har flest point står øverst osv. Kan udvælgelse og sortering fra db\'en ske i SQL-sætningen?
Avatar billede milo Nybegynder
03. september 2001 - 10:49 #1
order by ?
Avatar billede cuddles Nybegynder
03. september 2001 - 10:50 #2
Ja, lav en \"ORDER BY point DESC\"
Avatar billede orca Nybegynder
03. september 2001 - 10:53 #3
Bare lav en SQL sætning således:

\"SELECT TOP 10 * FROM dinTabel ORDER BY pointFelt Desc\"

Mvh Mark
www.profiled.org/?orca
Avatar billede keysersoze Ekspert
03. september 2001 - 10:53 #4
select top 10 from TABEL order by TABEL desc
Avatar billede hf Nybegynder
03. september 2001 - 10:54 #5
Ja men det er meningen at holdene skal sorteres efter deres samlede pointstilling. Der kan optræde f.eks. 50 poster for hvert hold, som tilsammen giver holdets pointstilling.
Avatar billede cuddles Nybegynder
03. september 2001 - 10:58 #6
Så må du jo løbe den igennem for hvert hold, der er:

SELECT SUM(PointFelt) WHERE HoldID = HoldID

og samle sammen i et array, så du f.eks på den ene dimension har holdid, og i den anden har point.
Avatar billede pcl Nybegynder
03. september 2001 - 11:03 #7
Hej Fomse er det dig?
Avatar billede pcl Nybegynder
03. september 2001 - 11:03 #8
Hvorfor skriver du ikke direkte til programøren?
Avatar billede cuddles Nybegynder
03. september 2001 - 11:03 #9
Eller endnu bedre:

SELECT SUM(PointFelt) AS Total, HoldID FROM dinTabel ORDER BY Total DESC
Avatar billede hf Nybegynder
03. september 2001 - 11:04 #10
Jeg mangler stadig at får sorteret resultaterne.
Avatar billede pcl Nybegynder
03. september 2001 - 11:04 #11
Gør ligesom orca skriver

\"SELECT TOP 10 * FROM tblTilmeldteHold ORDER BY pointFelt Desc\"
Avatar billede cuddles Nybegynder
03. september 2001 - 11:05 #12
ved nærmere eftertanke, så skal der nok noget mere snedigt til, hvis du vil have det udført i SQL\'en... der skal lige tænkes lidt ekstra.
Avatar billede pcl Nybegynder
03. september 2001 - 11:06 #13
sorter på hvad på hold?

Avatar billede pcl Nybegynder
03. september 2001 - 11:07 #14
Hvad mener du her:

Kan udvælgelse og sortering fra db\'en ske i SQL-sætningen?
Avatar billede pcl Nybegynder
03. september 2001 - 11:13 #15
<%
DBConnLogin = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"cycling.mdb\")

set connect = server.createobject(\"ADODB.connection\")
Connect.Open DBConnLogin

Query = \"SELECT TOP 10 * FROM tblTilmeldteHold ORDER BY pointialt Desc\"\"
Set RStop10 = Server.CreateObject(\"ADODB.RecordSet\")
RStop10.open Query, Connect

%>
<html>
<head>
    <title>Vis Hold</title>
</head>

<body>


<table>
<%
Do until RStop10.EOF
%>
<tr>

<td><%=RStop10(holdnavn)%></td>
</tr>

       
<%
    RStop10.Movenext
Loop   
%>
</table>



</body>
</html>
Avatar billede pcl Nybegynder
03. september 2001 - 11:14 #16
ups, sådan her

<td><%=RStop10(\"holdnavn\")%></td>
Avatar billede nordclc Nybegynder
03. september 2001 - 11:15 #17
select top 10 hold, sum(point) as pointialt
from tabel
group by hold
order by pointialt desc

//Claus
Avatar billede pcl Nybegynder
03. september 2001 - 11:15 #18
her er en tilrettet version

<%
DBConnLogin = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"cycling.mdb\")

set connect = server.createobject(\"ADODB.connection\")
Connect.Open DBConnLogin

Query = \"SELECT TOP 10 * FROM tblTilmeldteHold ORDER BY pointialt Desc\"
Set RStop10 = Server.CreateObject(\"ADODB.RecordSet\")
RStop10.open Query, Connect

%>
<html>
<head>
    <title>Vis Hold</title>
</head>

<body>


<table>
<%
Do until RStop10.EOF
%>
<tr>

<td><%=RStop10(\"holdnavn\")%></td>
</tr>

       
<%
    RStop10.Movenext
Loop   
%>
</table>



</body>
</html>
Avatar billede pcl Nybegynder
03. september 2001 - 11:16 #19
Dette virker altså, fomse
Avatar billede hf Nybegynder
03. september 2001 - 11:34 #20
Det spiller ikke helt:
Flg. virker, men er ikke sorteret
select sum(point) as pointialt from Kunder group by hold_id
Virker ikke (Too few parameters. Expected 1.):
select sum(point) as pointialt from Kunder group by hold_id order by pointialt desc
Avatar billede cuddles Nybegynder
03. september 2001 - 11:35 #21
Manglede group by og top.

SELECT TOP 10 SUM(PointFelt) AS Total, HoldID FROM dinTabel GROUP BY HoldID ORDER BY Total DESC
Avatar billede hf Nybegynder
03. september 2001 - 11:40 #22
cuddles:
Jeg har prøvet dit seneste bud, men det virker kun når jeg fjerner order by...
Avatar billede nordclc Nybegynder
03. september 2001 - 12:29 #23
OK, så prøv:

select top 10 hold, sum(point)
from tabel
group by hold
order by sum(point) desc

//Claus
Avatar billede nordclc Nybegynder
03. september 2001 - 12:29 #24
Hvilken database har du?
Avatar billede hf Nybegynder
03. september 2001 - 12:42 #25
It works.
DB er Access 97
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester