Avatar billede Ulrich Seniormester
15. september 2016 - 20:01 Der er 17 kommentarer og
1 løsning

ORDER BY i kodelinje.

Hej

Er det muligt at indbygge ORDER BY i nedenstående kodelinje?
Der skal sorteres efter hit_count

SumVariabel = conn.execute("SELECT SUM(hit_count) as TotalSum FROM hit_count_month_year WHERE page_name='" & Siden & "'")

response.write(SumVariabel("TotalSum"))
Avatar billede arne_v Ekspert
15. september 2016 - 21:55 #1
Ja.

Men da den SQL kun returnerer en raekke, saa giver det vel ingen mening.
Avatar billede arne_v Ekspert
15. september 2016 - 22:34 #2
Hvis du laver en GROUP BY og faar flere raekker ud, saa giver en ORDER BY glimrende mening.
Avatar billede arne_v Ekspert
16. september 2016 - 03:51 #3
Eksempel:

SELECT page_name,SUM(hit_count) as PageSum FROM hit_count_month_year ORDER BY PageSum DESC
Avatar billede Ulrich Seniormester
16. september 2016 - 08:18 #4
Den står i en
Do while not nydata.EOF
...........
nydata.movenext
Avatar billede arne_v Ekspert
16. september 2016 - 15:33 #5
Det hjaelper ikke at din kode kan laese flere raekker, hvis ikek SQL returnerer flere raekker.
Avatar billede Ulrich Seniormester
16. september 2016 - 16:09 #6
Jeg prøver mig frem - tak for hjælpen.
\Ulrich
Avatar billede Ulrich Seniormester
17. september 2016 - 07:01 #7
Her er min kode, og jeg har lavet det sådan at alt efter valg af ID som er links overskrift HTML, sorteres der på denne kolonne, det er normale udtræk.
Men jeg laver så en kolonne visning med variablen:
SumVariabel = conn.execute("SELECT SUM(hit_count) as TotalSum FROM hit_count_month_year WHERE page_name='" & Siden & "'")
som jeg viser og gerne ville kunne sortere på også, og det ved jeg ikke hvordan jeg gør?

<%
Select Case Request.querystring("ID")
Case "1"
ID="Order By page_name ASC"
Case "2"
ID="Order By Month_Number ASC, Year_Number ASC"
Case "3"
ID="Order By Year_Number DESC, hit_count DESC"
Case "4"
ID="Order By hit_count DESC, last_date DESC, last_time DESC"
Case "5"
ID="Order By last_date DESC, last_time DESC, hit_count DESC"
Case "6"
ID="Order By last_date DESC, last_time DESC, hit_count DESC"
Case "7"

Case Else
ID="Order By hit_count DESC, Month_Number, Year_Number ASC"
End Select 

datavar = "select * from hit_count_month_year " & ID & ""
set nydata = conn.execute(datavar)
%>

<%Do while not nydata.EOF%>

<%
  ' Variabel til sidenavn i record
  Siden=nydata("page_name")
 
  ' Variabel til side hits i record
  SidenHits=nydata("hit_count")
 
  ' Variabel indeholder sum af klik paa side i record hit_count_month_year tabel
  SumVariabel = conn.execute("SELECT SUM(hit_count) as TotalSum FROM hit_count_month_year WHERE page_name='" & Siden & "'")

  ' Variabel indeholder sum af klik total paa alle sider til sammen
  TotalSumVariabel = conn.execute("SELECT SUM(hit_count) as AllTotalSum FROM hit_count_month_year")
%>

<% If Request.querystring("VisSti")=1 Then %>
        <td><font face="Verdana" size="2"><a target="_blank" href=<%response.write(Siden)%>><%response.write(Siden)%></a>&nbsp;</font></td>
<% Else %>
        <td><font face="Verdana" size="2"><a target="_blank" href=<%response.write(Siden)%>><%response.write(Mid(Siden,Int(InStrRev(Siden,"/",-1,0))+1,Len(Siden)-InStrRev(Siden,"/",-1,0)))%></a>&nbsp;</font></td>
<% End If %>
        <td align="left"><font face="Verdana" size="2"><%response.write(MonthName(nydata("Month_Number"),True))%></font></td>
        <td align="left"><font face="Verdana" size="2"><%response.write(nydata("Year_Number"))%></font></td>
        <td align="left"><font face="Verdana" size="2"><%response.write(SidenHits)%></font></td>
        <td align="left"><font face="Verdana" size="2"><%response.write(nydata("last_date"))%></font></td>
        <td align="left"><font face="Verdana" size="2"><%response.write(nydata("last_time"))%></font></td>
        <td align="left"><font face="Verdana" size="2"><%response.write(SumVariabel("TotalSum"))%></font></td>
        <td align="center"><font face="Verdana" size="2"><%Response.Write(Round(SidenHits / GetDaysInMonth(nydata("Month_Number"),nydata("Year_Number")),1))%></font></td>
        <td align="center"><font face="Verdana" size="2"><%Response.Write(Round(SumVariabel("TotalSum") / DateDiff("D",CountResat, (Date)),1))%></font></td>
        <td align="center"><font face="Verdana" size="2"><%Response.Write(SidenHits)%></font></td>
        <td align="center"><font face="Verdana" size="2"><%Response.Write(Round(SumVariabel("TotalSum") / DateDiff("M",CountResat, (Date)),1))%></font></td>
        <td align="center"><font face="Verdana" size="2"><%Response.Write(Round(SumVariabel("TotalSum") / DateDiff("YYYY",CountResat, (Date)),1))%></font></td>
        <td align="center"><font face="Verdana" size="2"><%Response.Write(Round((Int(SumVariabel("TotalSum")) * 100) / Int(SumTotalVariabel("AllTotalSum")),1))%></font></td>
    </tr>
<%
nydata.movenext
loop
%>
Avatar billede arne_v Ekspert
20. september 2016 - 01:49 #8
Ah - jeg tror at jeg er ved at se hvad du vil.

:-)

Proev:

datavar = "select page_name,hit_count,(SELECT SUM(hit_count) as TotalSum FROM hit_count_month_year t2 WHERE t2.page_name=t1.page_name) as TotalSum from hit_count_month_year t1 " & ID & ""

og erstat:

SumVariabel = conn.execute("SELECT SUM(hit_count) as TotalSum FROM hit_count_month_year WHERE page_name='" & Siden & "'")

med

SumVariabel = nydata("Total_Sum")

og du boer nu kunne sortere efter TotalSum.
Avatar billede Ulrich Seniormester
20. september 2016 - 20:38 #9
Bliver nødsaget til at lave denne for at få alle data ud: *
datavar = "select *,(SELECT SUM(hit_count) as TotalSum FROM hit_count_month_year t2 WHERE t2.page_name=t1.page_name) as TotalSum from hit_count_month_year t1 " & ID & ""

Men denne variabel kommer ikke til at indeholde noget:
SumVariabel = nydata("Total_Sum")

Og når jeg laver en ORDER BY TotalSum får jeg en time out.
Avatar billede arne_v Ekspert
20. september 2016 - 20:42 #10
Har du index paa page_name?
Avatar billede Ulrich Seniormester
20. september 2016 - 22:04 #11
Nej det har jeg ikke, men kan vælge:
Nej
Ja - dubletter tillades
Ja - ingen dubletter

Skal jeg vælge Ja - dubletter tillades ?
Avatar billede arne_v Ekspert
21. september 2016 - 00:37 #12
Yes
Avatar billede Ulrich Seniormester
22. september 2016 - 21:13 #13
Nu har jeg sat index på: Ja - dubletter tillades

Når jeg sætter ORDER BY TotalSum på får jeg stadig Time Out - siden går i stå....

datavar = "select page_name,hit_count,(SELECT SUM(hit_count) as TotalSum FROM hit_count_month_year t2 WHERE t2.page_name=t1.page_name) as TotalSum from hit_count_month_year t1 ORDER BY TotalSum"
Avatar billede Ulrich Seniormester
24. september 2016 - 21:20 #14
Hej.
Nogen der kan hjælpe med dette problem?
Avatar billede Ulrich Seniormester
27. september 2016 - 21:33 #15
arne_v kunne du hjælpe yderligere på dette?
Avatar billede arne_v Ekspert
28. september 2016 - 04:15 #16
Jeg vil gerne, men jeg er ligesom loebet toer for ideer.

Jeg synes ikek at den burde gaa kold paa den SQL.

Hvor mange raekker har du i den tabel?
Avatar billede Ulrich Seniormester
28. september 2016 - 06:52 #17
Der er 27 rækker, og det er hvad der kommer af antal.
Ja det er mystisk....
Det er en .Microsoft .mdb database og det er en .asp side koden laves i.
Avatar billede Ulrich Seniormester
28. september 2016 - 21:07 #18
Tror det er en funktion eller noget der ikke kan bruges i .mdb database og ASP kode.

Den går fast ved denne linje:

datavar = "select *,page_name,hit_count,(SELECT SUM(hit_count) as TotalSum FROM hit_count_month_year t2 WHERE t2.page_name=t1.page_name) as TotalSum from hit_count_month_year t1 ORDER BY TotalSum"

Er den som du havde tænkt dig?
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