webForumDet fria alternativet

SQL hjälp

28 svar · 613 visningar · startad av sven

svenMedlem sedan aug. 2001383 inlägg
#1

Hej ....

Behöver lite hjälp med att få ihop en SQL sats för en besöksräknare.

Har i min databas tabellerna namn och en datum. Där skrivs namnet och datumet in när man har varit på besök.
Nu vill jag skriva ut namnet och hur många gånger man har varit på besök i ex. Oktober månad.

Någon som kan hjälpa mig med lämplig SQL skrivning??

LR^evil.sidMedlem sedan maj 2002560 inlägg
#2

Kanske nått sånt?

sql = "select count(namn) from tabell where namn = '"&Request.QueryString("namn")&"' and DatePart("m", datum) = DatePart("m", Now())
PalleMedlem sedan apr. 20003 174 inlägg
#3

1. Varför inte ha 1 tabell med 2 kolumner i istället, känns onödigt att ha två tabeller för detta.
2. Vilken dbms handlar det om?
3. SQL-frågor bör ställas i SQL-forumet. (rapporterat tråden)

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Flyttas från ASP

svenMedlem sedan aug. 2001383 inlägg
#5

Sorry Palle... massor av fel av mig :)
1. Skrivfel av mig. Har en tabell med kolumnerna namn och datum
2. Access databas...
3. Sorry :r

svenMedlem sedan aug. 2001383 inlägg
#6

LR^evil.sid.... har ingen QueryString att tillgå... vad jag vill göra är att lista alla....

LR^evil.sidMedlem sedan maj 2002560 inlägg
#7

Jaha?

sql = "select count(namn) from tabell where DatePart("m", datum) = DatePart("m", Now())

Om du vill viasa alla poster är det ju bara att strunta i att identifiera besökaren. Eller missförstår jag dig nu?

svenMedlem sedan aug. 2001383 inlägg
#8

Nä.. där missförstår du nog inte...

Frågan är ... vad står "m" för... tänker att det står för månad.. eller??

Engine^Medlem sedan dec. 20003 887 inlägg
#9

Jupp. Samma som

SELECT Count(namn)
FROM tabell
WHERE Month(datum) = Month(Now())
svenMedlem sedan aug. 2001383 inlägg
#10

Ok... då är jag med ... så långt....
Men hur skriver jag sen ut det????

@ndersMedlem sedan juni 200032 969 inlägg
#11

Antingen anger du fältets index, 0 i det här fallet, och refererar till det när du ska skriva ut det;

Response.write dittRecordsetObjekt(0)

, eller så ger du det skapade fältet ett namn i SQL-frågan;

sql = "select count(namn) [b]AS antal[/b] ......."

I det här fallet skriver du ut värdet genom att göra precis som vanligt, och ange antal som fältnamn;

Response.write dittRecordsetObjekt("antal")

Hoppas det var svar på din fråga. :)

mvh

svenMedlem sedan aug. 2001383 inlägg
#12

hmmm... inte riktigt @nders

så här ser min kod ut nu

SQL = "SELECT COUNT(namn) AS antal FROM besok WHERE Month(datum) = Month(Now())"

Set rs = db.Execute(SQL)
do while not rs.EOF

Response.Write rs("antal")

rs.MoveNext
loop

Nu skriver den ut antal träffar aktuell månad. Men vad jag vill ha är...
Hur många gånger Nisse har varit här. Hur många gång Lisa varit här... osv...

@ndersMedlem sedan juni 200032 969 inlägg
#13

Oki. Jag har bara läst ditt sista inlägg. :)

Prova detta då:

SQL = "SELECT namn, COUNT(*) AS antal FROM besok WHERE Month(datum) = Month(Now()) GROUP BY namn ORDER BY namn"

Set rs = db.Execute(SQL)
do while not rs.EOF

Response.Write rs("namn") & " - " & rs("antal") & "<br>"

rs.MoveNext
loop

Mvh

LarsGMedlem sedan dec. 200012 464 inlägg
#14
SQL = "SELECT namn,COUNT(namn) AS antal FROM besok WHERE Month(datum) = Month(Now()) group by namn"
svenMedlem sedan aug. 2001383 inlägg
#15

Lysande @nders..... ännu en öl tillgodo på ditt konto....

svenMedlem sedan aug. 2001383 inlägg
#16

Bara en detalj till

nu sorterar den på namn

ORDER BY namn

Men om jag vill sortera på antal.... för det funkar inte att skriva ORDER BY antal
eller?????

LarsGMedlem sedan dec. 200012 464 inlägg
#17
SQL = "SELECT namn,COUNT(namn) AS antal FROM besok WHERE Month(datum) = Month(Now()) group by namn order by 2 "
'desc or asc?
PalleMedlem sedan apr. 20003 174 inlägg
#18
[red]SQL = "SELECT namn,COUNT(namn) AS antal FROM besok WHERE Month(datum) = Month(Now()) group by namn ORDER BY 2"[/red]
@ndersMedlem sedan juni 200032 969 inlägg
#19

Eftersom det är Access får du ange ordningstalet för den skapade kolumnen, dvs 2:

SQL = "SELECT namn, COUNT(*) AS antal FROM besok WHERE Month(datum) = Month(Now()) GROUP BY namn ORDER BY 2 DESC"
svenMedlem sedan aug. 2001383 inlägg
#20

Tack Palle... sätter upp en öl på ditt konto oxå....

130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)