Avatar billede asker Nybegynder
29. juni 2001 - 10:24 Der er 15 kommentarer og
1 løsning

Sortering

Hej

først vælger jeg nogle kommunerne og grupperer dem
strSQL = \"SELECT Kunde.Kommune FROM Kunde GROUP BY Kunde.Kommune ORDER BY Kunde.Kommune\"
set rs = conn.execute(strSQL)

dernæst kunde jeg godt tænke mig at sortere dem efter Kunde.Kontant

strSQL = \"SELECT Kunde.Kommune FROM Kunde GROUP BY Kunde.Kommune ORDER BY Kunde.Kommune, Kunde.Kontant\"

sp får jeg en fejl:
Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression \'Kunde.Kontant\' as part of an aggregate function.

/Databaser/re.asp, line 20
Avatar billede nuno Nybegynder
29. juni 2001 - 10:26 #1
strSQL = \"SELECT Kunde.Kommune, Kunde.Kontant FROM Kunde GROUP BY Kunde.Kommune ORDER BY Kunde.Kommune, Kunde.Kontant\"

/nuno
Avatar billede proaccess Nybegynder
29. juni 2001 - 10:31 #2
Dette skyldes at du har et felt med (Kontant) i forespørgslen, men ikke fortæller hvordan selve grupperingen skal håndtere feltet.

Du skal ENTEN gruppere på dette felt ELLER vælge Sum, Max, Første eller lign.

Hvis det du vil faktisk er at vise alle kunder, og sortere efter kommune og kontant, UDEN GRUPPERING, så er følgende nok mest rigtigt:

SELECT * FROM Kunde ORDER BY Kommune, Kontant

Du skal huske at der er forskel på gruppering og sortering. Gruppering sammenføjer date i grupper, hvorimod sortering angiver visningsrækkefølge...
Avatar billede asker Nybegynder
29. juni 2001 - 20:49 #3
Først gruppere jeg alle data efter kommune således at alle poster fra vordingborg bliver vist med overskriften VORDINGBORG osv..

men nu vil jeg have at alle posterne i VORDINGBORG bliver sorteret efter beløb med højeste beløb først
Avatar billede asker Nybegynder
29. juni 2001 - 20:50 #4
Det jeg mener er at der skal både grupperes og sorteres
Avatar billede nuno Nybegynder
29. juni 2001 - 22:12 #5
så er det som proaccess skriver - og så med desc på kunde - fordi du vil have det sorteret faldende

strSQL = \"SELECT * FROM Kunde ORDER BY Kunde.Kommune, Kunde.Kontant DESC\"

/nuno
Avatar billede asker Nybegynder
02. juli 2001 - 11:18 #6
ok

Hvad betyder DESC....
Avatar billede nuno Nybegynder
02. juli 2001 - 11:20 #7
DESCending = faldende... altså de højeste først - det modsatte er ASC = ascending... stigende
Avatar billede proaccess Nybegynder
02. juli 2001 - 11:24 #8
Dit databaseudtræk er nødt til at have alle (relevante) kolonner med ud, hvordan du så vil præsentere dem er op til ASP. Fx med kommunenavn som Fed skrift i overskrift og ikke på hver enkelt linie.

SELECT * FROM Kunde ORDER BY Kommune, Kontant DESC

Eller hvis du kun skal bruge enkelte data fra Kunde-tabellen:

SELECT Kommune, KundeNr, KundeNavn, Kontant FROM Kunde ORDER BY Kommune, Kontant DESC



Avatar billede asker Nybegynder
02. juli 2001 - 11:40 #9
Jeg vil gerne have at de sammenføjet data i Grupperingen Kommune bliver vist med højste beløb først dvs. sortert på Kontant.
Avatar billede nuno Nybegynder
02. juli 2001 - 11:47 #10
uden at være helt sikker på at jeg forstår dig helt korrekt - så vil følgende sqlsætning

SELECT * FROM Kunde ORDER BY Kommune, Kontant DESC

resultere i et søgeresultat, som lister dine data - først sorteret efter kommune - dernæst efter kontant

dvs.

Assens - 400
Assens - 275
Assens - 110
Blokhus - 600
Blokhus - 555
Blokhus - 220
Christiansfeld - 800
Christiansfeld - 375
Christiansfeld - 100

/nuno
Avatar billede proaccess Nybegynder
02. juli 2001 - 11:49 #11
Hvis dine data skal se sådan ud:

Græsted:
  Preben            1.000,00
  Ib                  800,00
Roskilde:
  Ole                1.500,00
  Bo                  750,00

Så skal dit dataudtræk være sådan:

Kommune  Person            Kontant
Græsted  Preben            1.000,00
Græsted  Ib                  800,00
Roskilde  Ole                1.500,00
Roskilde  Bo                  750,00

Hvilket er PRÆCIS hvad mit forslag går ud på...

Avatar billede asker Nybegynder
02. juli 2001 - 14:17 #12
Ok

Sådan her ser det ud nu:

http://www.vipiil.dk/Databaser/retest.asp

Dette vil jeg gerne have sorteret efter beløb
Avatar billede asker Nybegynder
02. juli 2001 - 14:19 #13
Koden se sådan her ud:

<%
session.LCID = 1030
response.buffer = true

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"Ejendomme.mdb\")
%>
<html>

<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<title>vipiil - bolig liste</title>
</head>

<body>

<%
\'først vælger vi kommunerne og grupperer dem
strSQL = \"SELECT Kunde.Kommune FROM Kunde GROUP BY Kunde.Kommune ORDER BY Kunde.Kommune\"
set rs = conn.execute(strSQL) 

\'dernest skriver vi alle posterne ud til de pågældende kommuner
%>
<table width=\"630\" border=\"0\" align=\"left\">
<% do until rs.eof %>
    <tr>
      <td width=\"250\" valign=\"middle\" colspan=\"2\"><b><span style=\"background-color: #FFFFFF\"><font size=\"3\"><p style=\"word-spacing: 0; margin: 0\"><p>&nbsp;</p><% response.write \"<b>\"& rs(\"kommune\")&\"</b><p>\" %>
        <p style=\"word-spacing: 0; margin: 0\">     
      </font></span></b></td>
            <tr>   
    <td bgcolor=\"#0066FF\" width=\"180\"><b><font size=\"2\" color=\"#FFFFFF\">Beliggenhed</font></b></td>
      <td bgcolor=\"#0066FF\" width=\"64\"><b><font size=\"2\" color=\"#FFFFFF\">Kontant</font></b></td>
      <td bgcolor=\"#0066FF\" width=\"53\"><b><font size=\"2\" color=\"#FFFFFF\">Brutto</font></b></td>
      <td bgcolor=\"#0066FF\" width=\"48\"><b><font size=\"2\" color=\"#FFFFFF\">Netto</font></b></td>
      <td bgcolor=\"#0066FF\" width=\"50\"><b><font size=\"2\" color=\"#FFFFFF\">Udbet</font></b></td>
      <td bgcolor=\"#0066FF\" width=\"39\"><b><font size=\"2\" color=\"#FFFFFF\">Vær</font></b></td>
      <td bgcolor=\"#0066FF\" width=\"42\"><b><font size=\"2\" color=\"#FFFFFF\">Kvm</font></b></td>
      <td bgcolor=\"#0066FF\" width=\"51\"><b><font size=\"2\" color=\"#FFFFFF\">Grund</font></b></td>
      <td bgcolor=\"#0066FF\" width=\"55\"><b><font size=\"2\" color=\"#FFFFFF\">Sagsnr</font></b></td>
    </tr>

<%
strSQL1 = \"SELECT * FROM kunde where (kommune = \'\"& rs(\"kommune\")&\"\')\"

set rs1 = conn.execute(strSQL1)
do until rs1.eof

%>

<tr>


<%
if rs1(\"solgt\") = true and rs1(\"nysag\") = false then
%>
<td bgcolor=\"#CFDDDE\" width=\"180\"><font size=\"2\"></a><img src=\"so.gif\" align=\"right\"><a href=\"de.asp?Sagsnr=<%=rs1(\"Sagsnr\")%>\"><%=rs1(\"Beliggenhed\")%></td>
<%
elseif rs1(\"solgt\") = false and rs1(\"nysag\") = true then
%>
<td bgcolor=\"#CFDDDE\" width=\"180\"><font size=\"2\"></a><img src=\"ny.gif\" align=\"right\"><a href=\"de.asp?Sagsnr=<%=rs1(\"Sagsnr\")%>\"><%=rs1(\"Beliggenhed\")%></td>
<%
else
%>
<td bgcolor=\"#CFDDDE\" width=\"180\"><font size=\"2\"><a href=\"de.asp?Sagsnr=<%=rs1(\"Sagsnr\")%>\"><%=rs1(\"Beliggenhed\")%></a></td>
<%
end if
%>



      <td bgcolor=\"#CFDDDE\" align=\"center\" width=\"64\"><font size=\"2\" width=\"72\"><%=rs1(\"Kontant\")%></td>
      <td bgcolor=\"#CFDDDE\" align=\"center\" width=\"53\"><font size=\"2\" width=\"62\"><%=rs1(\"Brutto\")%></td>
      <td bgcolor=\"#CFDDDE\" align=\"center\" width=\"48\"><font size=\"2\" width=\"58\"><%=rs1(\"Netto\")%></td>
      <td bgcolor=\"#CFDDDE\" align=\"center\" width=\"50\"><font size=\"2\" width=\"61\"><%=rs1(\"Udbet\")%></td>
      <td bgcolor=\"#CFDDDE\" align=\"center\" width=\"39\"><font size=\"2\" width=\"49\"><%=rs1(\"Vær\")%></td>
      <td bgcolor=\"#CFDDDE\" align=\"center\" width=\"42\"><font size=\"2\" width=\"53\"><%=rs1(\"Kvm\")%></td>
      <td bgcolor=\"#CFDDDE\" align=\"center\" width=\"51\"><font size=\"2\" width=\"61\"><%=rs1(\"Grund\")%></td>
      <td bgcolor=\"#CFDDDE\" align=\"center\" width=\"55\"><font size=\"2\" width=\"65\"><%=rs1(\"Sagsnr\")%></td>
<%
rs1.movenext
loop
rs.movenext
loop
%>

</table>

</body>
<% conn.close
set conn = nothing %>
Avatar billede proaccess Nybegynder
02. juli 2001 - 14:22 #14
strSQL1 = \"SELECT * FROM kunde where (kommune = \'\"& rs(\"kommune\")&\"\')\"

skal rettes til:

strSQL1 = \"SELECT * FROM kunde where (kommune = \'\"& rs(\"kommune\")&\"\') ORDER BY Kontant DESC\"
Avatar billede asker Nybegynder
02. juli 2001 - 14:34 #15
Mange tak............

Avatar billede proaccess Nybegynder
02. juli 2001 - 14:36 #16
Du kunne bare have sagt at du tog data ud i 2 tempi...  Så havde det været løst med det samme.
Men nu kom du da videre, og det er jo det vigtigste...
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