webForumDet fria alternativet

If sats med SQL..

6 svar · 364 visningar · startad av Karin_Parin

Karin_ParinMedlem sedan okt. 200332 inlägg
#1

Trots att det finns hits den senaste dagen lagrade i databasen så skrivs "Inga hits den senaste dagen " ut, variabeln antal har ju ett värde som är större än ett..varför kan det komma sig att if satsen inte fungerar...?:l

'## Hits idag ##'
SQL = "SELECT Datum,COUNT(*) AS antal FROM tblHits WHERE Day(Datum) = Day('" & Now() & "') GROUP BY Datum ORDER BY Datum"
Set RS = Conn.Execute(SQL)
IF  antal < 1 THEN
Response.Write "<br>Inga hits senaste dagen<br>"
Else
Response.Write"<td><b><br>För idag, </td><td>" & WeekdayName(Weekday(Date)) & " är "& (RS("antal"))& "</b><br>"
End IF

Tack så länge..!

@ndersMedlem sedan juni 200032 969 inlägg
#2

Nix, variabeln antal har inte ett värde som är större än ett. Den har nämligen inget värde alls, eftersom du inte gett den ett värde.

SQL = "SELECT Datum,COUNT(*) AS antal FROM tblHits WHERE Day(Datum) = Day('" & Now() & "') GROUP BY Datum ORDER BY Datum"
Set RS = Conn.Execute(SQL)
[b]antal=Clng(RS("antal"))[/b]
IF  antal < 1 THEN

Men, är du säker på att din SQL-fråga stämmer? Varför har du med Datum i SELECT-delen? Borde du inte också ha med månad och år i WHERE-satsen, så det inte bara duger med valfri 23:e?

Mvh,

Karin_ParinMedlem sedan okt. 200332 inlägg
#3

Visst du har helt rätt...tänkte inte på det.. ;) Så nu har jag försökt få till det med en ny SQL fråga..

SQL = "SELECT PageID,COUNT(*) AS antal FROM tblHits WHERE Tid = DatePart(hour,'"& Time &"') AND Datum ='"& FormatDateTime(Now,2)&"'  GROUP BY PageID ORDER BY PageID"

Lagrar tiden i en kolumn som heter Tid och Datum i en kolumn som heter Datum och vill ju jämföra tiden nu med båda kolumnerna... tänker jag fel..
Typerna för Tid är nvarchar och för Datum DateTime.
Får följande felmeddelande..vid denna SQL frågan ovan..

Syntax error converting the nvarchar value '11:57:27' to a column of data type int.
Nexus86Medlem sedan okt. 20023 030 inlägg
#4

En stark gissning: DatePart är en ASP-funktion och inte en SQL-funktion. :)

R// Detta borde alltså fungera:

SQL = "SELECT PageID,COUNT(*) AS antal FROM tblHits WHERE Tid = " & Hour(Time) & " AND Datum = '" & FormatDateTime(Now, 2) & "' GROUP BY PageID ORDER BY PageID"
Karin_ParinMedlem sedan okt. 200332 inlägg
#5

OK, tack.
Men nu har jag provat och tagit bort DatePart och provat din fråga men samma fel kvarstår...

Syntax error converting the nvarchar value '11:57:27' to a column of data type int.

Vad kan det bero på..?
//Karin

@ndersMedlem sedan juni 200032 969 inlägg
#6

Typerna för Tid är nvarchar och för Datum DateTime.

Lagra datum och tid i datetimefält, annars kan du inte använda de datumfunktioner (till exempel DatePart) som finns.

mvh

Nexus86Medlem sedan okt. 20023 030 inlägg
#7

Bytte du även ut DatePart mot Hour som jag gjorde? Hur ser din SQL-sats ut nu?

R// Man kan ju såklart använda DatePart men jag finner det mycket enklare med Hour. :)

R2// Du skulle inte ha utan båda. Bara för att förtydliga. :)

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