webForumDet fria alternativet

SQL hjälp

Databaser & SQLur Databashanterare & SQL

28 svar · 613 visningar · startad av sven

Medlem sedan aug. 2001383 inlägg
Frågan#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??

Medlem 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())
Medlem 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)

Medlem sedan dec. 200012 464 inlägg
#4

Flyttas från ASP

Medlem 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

Medlem sedan aug. 2001383 inlägg
#6

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

Medlem 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?

Medlem 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??

Medlem sedan dec. 20003 887 inlägg
#9

Jupp. Samma som

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

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

Medlem sedan juni 200032 967 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

Medlem 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...

Medlem sedan juni 200032 967 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

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

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

Medlem 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?????

Medlem 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?
Medlem 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]
Medlem sedan juni 200032 967 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"
Medlem sedan aug. 2001383 inlägg
#20

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

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