webForumDet fria alternativet

SQL-sats för bloggarkiv

6 svar · 366 visningar · startad av hypatia

hypatiaMedlem sedan feb. 20016 388 inlägg
#1

Jag har en tabell blogg med fälten id, rubrik, blogg, tid, ye, mo och en tabell bloggkommentar bl.a. med fältet bloggid som hör ihop med fältet id från blogg.

Nu vill jag plocka ut alla inlägg från t.ex november 2005 ur blogg och räkna antalet bloggid som hör till varje inlägg från bloggkommentar men får inte till sql-satsen för det...

Så här har jag testat:

SELECT A.id, A.rubrik, A.blogg, A.tid, A.ye, A.mo, count(B.bloggid) as antal
FROM blogg A, bloggkommentar B 
WHERE A.id=B.bloggid AND A.ye="&ye&" AND A.mo="&mo&" 
ORDER BY A.id desc 
GROUP BY A.id, A.rubrik, A.blogg, A.tid, A.ye, A.mo

Men jag får felmeddelandet

Sun ONE ASP VBScript runtime (0x80040E14)
bloggtext2.asp, line 90

Kring rad 90 har vi den här koden:

with rs
  .cursorlocation = 3  
  .open SQL99, Conn
end with

Är det någon som har en idé om vad jag ska göra för att rätta till det här?

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Hejsan! :)

group by skall komma före order by. Vad händer om du byter plats på dessa?

hypatiaMedlem sedan feb. 20016 388 inlägg
#3

Tyvärr ingen skillnad... har testat att helt ta bort order by också, men inte heller det gör någon skillnad. :(

emissionMedlem sedan dec. 19996 721 inlägg
#4

SQL-satsen är det inget direkt fel på, vad jag kan se (förutom ORDER). Bara för testnings skull kan du byta ut den sista kodsnutten till en enkel

set rs=Conn.Execute(SQL99)
emissionMedlem sedan dec. 19996 721 inlägg
#5

Förutsätter att varken "ye" eller "mo" är strängar. Skriv gärna ut SQL99 i sin helhet.

hypatiaMedlem sedan feb. 20016 388 inlägg
#6

Å, det funkade så himla bra! Tack emission, du är bäst som vanligt! :f

Det skulle iofs vara kul att veta varför det blir sådan skillnad... är execute generellt sätt att föredra framför open?

@ndersMedlem sedan juni 200032 969 inlägg
#7

hypatia skrev:

Å, det funkade så himla bra! Tack emission, du är bäst som vanligt! :f

Det skulle iofs vara kul att veta varför det blir sådan skillnad... är execute generellt sätt att föredra framför open?

.open är att föredra då man vill öppna ett recordset med andra cursor- eller lock-egenskaper än default. Om man skall öppna ett "vanligt" recordset för att visa data i en asp-sida så föredrar jag execute-metoden.

.open använder jag om jag ska leka med ett frånkopplat recordset, eller om jag behöver använda paging.

Mvh

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