webForumDet fria alternativet

trimma bort på någe vis

ASP

21 svar · 390 visningar · startad av brw

Medlem sedan juli 2000619 inlägg
Frågan#1

halo..

jag har en databas där jag sparar ner antal besök på en sida.

det som sparas ned är:

ip och datum

datumet är fullständigt format (2001-04-14 18:20:22)

och nu är det då såhär att jag ska ta fram statistik på varje dag hur många besök det vart.. då vill jag på nå vis trimma ut och få fram varje datum 1 gång.. dvs om det går att trimma bort tiden i datumet då kan jag ju köra en distinct och sen räkna hur många det är på den dagen och på så vis få endast 1 post per dag med antal bredvid annars rabblar den ju varje post.

koden ser ut som följer:

SQLStmt = "SELECT Distinct (datumreg) FROM counters ORDER BY datumreg DESC"
Set RS = Connection.Execute(SQLStmt)

Do until RS.EOF 
datum = RS("datumreg")
datumet = "'" & datum & "'"
Set anvands = Connection.Execute("Select Count(*) AS antalet FROM counters WHERE datumreg = "& datumet &" ")
antal = anvands("antalet")

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan okt. 20001 558 inlägg
#2
datum = Left(RS("datumreg"),10)

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

Medlem sedan juli 2000619 inlägg
#3

Alltså den skriver såhär med denna kod jag visade:
2001-04-20 10:21:57 Antal: 1
2001-04-20 09:58:08 Antal: 1
2001-04-20 09:54:32 Antal: 1
2001-04-20 09:53:22 Antal: 1
2001-04-20 09:52:44 Antal: 1

Jag vill att den skall skriva
2001-04-20 Antal: 5

så det bör ju vara den övre satsen man skall göra något med väl?

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan dec. 1999653 inlägg
#4

hm, jag kan inte läsa... glöm dehär... :)
*trött*

[Redigerat av nakoz den 20 apr 2001]

Medlem sedan dec. 19998 577 inlägg
#5

Kan du inte använda funktionen date i dit SQLuttryck?

Distinct(Date(datumreg))

------------------
Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it...
webEye.nu SweQuake.com

Medlem sedan juli 2000619 inlägg
#6

Då får jag följande:

Date is not a recognized function name.

Jag har SQL-databas så det borde väl fungera?

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan dec. 1999653 inlägg
#7

okej, vild chansning :)
möjligt att datumet måste vara av typen text? :)

SQLStmt = "SELECT Distinct (datumreg) FROM counters ORDER BY datumreg DESC"
Set RS = Connection.Execute(SQLStmt)
Do until RS.EOF 
datum = Left(RS("datumreg"),10)
Set anvands = Connection.Execute("SELECT Count(*) AS antalet FROM counters WHERE datumreg [b]LIKE '"& datum &"%'[/b]")
antal = anvands("antalet")

hehe, kanske e helt fel - vet inte om man kan göra så, men testa :)

------------------
void[]
stash/$gu&-public(querystring)/n int{}bind "2" "say i own!" :)

Medlem sedan juni 200032 967 inlägg
#8

så kan man göra. nästan. :)

dock måste fältet vara av datatypen varchar eller text för att man skall kunna använda like. jag föreslår följande (fast kör = istället).

SQLStmt = "SELECT Distinct CONVERT(VARCHAR(10),datumreg) AS datumreg FROM counters ORDER BY datumreg DESC"
Set RS = Connection.Execute(SQLStmt)
Do until RS.EOF 
datum = Left(RS("datumreg"),10)
Set anvands = Connection.Execute("SELECT Count(*) AS antalet FROM counters WHERE [b]CONVERT(VARCHAR(10),datumreg) = '"& datum &"'[/b]")
antal = anvands("antalet")

redigering: kanske skulle ha lite med i första selecten också... :)

redigering 2: jag är inte helt säker på att det där funkar, men kanske? har inte testat det...

mvh,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

[Redigerat av @nders den 20 apr 2001]

[Redigerat av @nders den 20 apr 2001]

Medlem sedan dec. 1999653 inlägg
#9

möjligt att datumet måste vara av typen text

dock måste fältet vara av datatypen varchar eller text för att man skall kunna använda like.

*host* ekar de här eller? :e

------------------
void[]
stash/$gu&-public(querystring)/n int{}bind "2" "say i own!" :)

Medlem sedan juli 2000619 inlägg
#10

hmm fan det där funkar inte.. den visar inget då..

det enklaste kanske vore om jag la till ett fält till i tabellen som bara innehåller datum utan tid. då är det ju löst eller vad säger ni?

det borde väl fungera såhär som ni beskriver oxå?

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan mars 20007 896 inlägg
#11

Hmm... Varför krångla till det så mycket? :q

SQL = "SELECT datumreg FROM counters GROUP BY datumreg ORDER BY datumreg ASC"
set RS = Connection.Execute(SQL)

Do Until RS.EOF
&nbsp; &nbsp; 'Hämta antal träffar via en SQL-sträng här...
&nbsp; &nbsp;Response.Write RS("datumreg") & "--> " & newRS("cntAntal") & "<br>"
RS.MoveNext
Loop

Borde funka som du vill... Om jag förstår dej rätt :)

[redigerat]
Japp, ett fält med bara datum vore bra, annars listas alla poster där klockslaget inte är samma med min metod... :)
[/redigerat]

------------------
SPiN, bjorne.w@telia.com

-- §e Grr... --

[Redigerat av SPiN den 20 apr 2001]

[Redigerat av SPiN den 20 apr 2001]

Medlem sedan juni 200032 967 inlägg
#12

annars listas alla poster där klockslaget inte är samma med min metod

...och det är väl det som är grundproblemet :q

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

Medlem sedan dec. 1999653 inlägg
#13

hehe... illa spin :e

brw: testat både mitt och @nders förslag? felmeddelanden? resulat?

------------------
void[]
stash/$gu&-public(querystring)/n int{}bind "2" "say i own!" :)

Medlem sedan mars 20007 896 inlägg
#14

Ojdå... :r

Kollade för lite på problemet... Kommer inte hända igen :e

------------------
SPiN, bjorne.w@telia.com

-- §e Grr... --

[Redigerat av SPiN den 20 apr 2001]

Medlem sedan juni 200032 967 inlägg
#15

nakoz:

*host* ekar de här eller?

ne, men i din kod försökte du köra like mot ett datetime-fält, jag pekade mest på att i så fall, så måste du göra en konvertering i sql-frågan, som den jag gjorde, även om jag valde att använda =.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

Medlem sedan dec. 1999653 inlägg
#16

men jag skrev ju att de kanske skulle va av datatypen text :)
aja, grattis till ditt 4000:de inlägg iaf http://www.webforum.nu/ssi/smilies/bire.gif

[redigering]
hmm, inga bilder här? aja, klicka på länken :)
[/redigering]

------------------
void[]
stash/$gu&-public(querystring)/n int{}bind "2" "say i own!" :)

[Redigerat av nakoz den 20 apr 2001]

Medlem sedan juli 2000619 inlägg
#17

nu ser det ut såhär:


SQLStmt = "SELECT Distinct CONVERT(VARCHAR(10),datumreg) FROM counters"
Set RS = Connection.Execute(SQLStmt)
%>

<table border="0">

<%

Do until RS.EOF 
datum = Left(RS("datumreg"),10)
datumet = "'" & datum & "'"
Set anvands = Connection.Execute("Select Count(*) AS antalet FROM counters WHERE CONVERT(VARCHAR(10),datumreg) = "& datumet &" ")
antal = anvands("antalet")

%>
<tr>

<td><%=datum%> Antal: <%=antal%></td>

</tr>
<%
RS.Movenext
Loop
%>

</table>

<%
RS.Close
anvands.close
Connection.Close
%>

och jag får följande fel:

ADODB.Fields error '800a0cc1'
ADO could not find the object in the collection corresponding to the name or ordinal reference requested by the application.

/statistik.asp, line 26

och rad 26 är den där count raden och om jag inaktiverar allt det där med att räkna så visas bara "Antal:" och inget mer på sidan

fel.. det är 26 som är Do until RS.eof
------------------
Ingenting är omöjligt, bara en utmaning.

[Redigerat av brw den 20 apr 2001]

Medlem sedan dec. 1999653 inlägg
#18

vad har din datum-kolumn för datatyp?

------------------
void[]
stash/$gu&-public(querystring)/n int{}bind "2" "say i own!" :)

Medlem sedan juli 2000619 inlägg
#19

datetime

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan dec. 1999653 inlägg
#20

om du testar byta till text/varchar och testar min kod sen så får vi se :)

------------------
void[]
stash/$gu&-public(querystring)/n int{}bind "2" "say i own!" :)

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)