webForumDet fria alternativet

SQL-fråga

Databaser & SQLur Databashanterare & SQL

29 svar · 571 visningar · startad av Kristianstad · sida 2 av 2

Frågan, av Kristianstad

I tabellen Filmer finns bland annat: \| ID \| Titel \| \| 1 \| Sagan om Ringen \| \| 2 \| Sagan om de två Tornen \| \| 3 \| Djungelboken \| I tabellen Betyg finns bland annat: \| FilmID \| Användarnamn \| Betyg \| \| 1 \| Medlem1 \| 4,9 \| \| 1 \| Medlem2 \| 3,5 \| \| 1 \| Medlem3 \| 3,8 \| \| 3 \| Medlem1 \| 2,3 \| Jag vill kunna göra lite grejer med dessa data. Jag skall bland anna

Läs frågan i sin helhet →
Medlem sedan dec. 200012 464 inlägg
#21

Det skall inte vara set där, ursäkta.

' Connectsträng
' SQL-fråga (som ovan)
set rs = server.createobject("adodb.recordset")
rs.cursorlocation = 3 'aduseclient
rs.open selectQuery
Medlem sedan dec. 2002841 inlägg
#22

Hej LarsG!
Nu fick jag

Parametrarna är felaktiga, ligger utanför tillåtet intervall eller skapar en inbördes konflikt.

...på raden med rs.open selectQuery

Så här ser den kod ut som jag tolkar dig att det skall vara:

' Connectsträng
' SQL-fråga (som ovan)
set rs = server.createobject("adodb.recordset")
rs.cursorlocation = 3 'aduseclient
rs.open strSQL

Set RecSet = Connect.Execute(strSQL)

1. Vad är det för fel jag gjort?
2. Hur får jag reda på antalet poster sedan, till min paging-funktion?

Tack på förhand!

Medlem sedan dec. 200012 464 inlägg
#23

Det saknas lite detaljer (som jag trodde du skulle fylla i själv ;) ).

set rs = server.createobject("adodb.recordset")
rs.cursorlocation = 3 'aduseclient
rs.open strSQL,connect

Det behövs ett connectionobjekt i rs.open. Du skall inte använda execute alls. Recordsetet fylls när man gör open. Antalet rader i resultatet får du fram genom att använda

rows = rs.recordcount
Medlem sedan dec. 2002841 inlägg
#24

Nu fungerade det! Äntligen! Tack så mycket, Lars! :)

Medlem sedan juli 200012 978 inlägg
#25

Om jag hade varit på nykter kaliber hade jag tyckt att denna dialog var bra.
Nu tycker jag att den äre superb!

Medlem sedan dec. 2002841 inlägg
#26

LarsG!
Nu har jag upptäckt en bugg. :e :stud

Då det inte är någon recension alls så innehåller votes 1, då det egentligen skall vara 0.

Hur kommer det sig? :o

Medlem sedan dec. 200012 464 inlägg
#27

Hur ser din fråga ut nu?

Vad innebär det att det inte finns någon recension?

Exemplifiera med datainnehåll

Medlem sedan dec. 2002841 inlägg
#28

Jag tar exemplet från första inlägget som exempel:
I tabellen Filmer finns bland annat:
| ID | Titel |
| 1 | Sagan om Ringen |
| 2 | Sagan om de två Tornen |
| 3 | Djungelboken |

I tabellen Betyg finns bland annat:
| FilmID | Användarnamn | Betyg |
| 1 | Medlem1 | 4,9 |
| 1 | Medlem2 | 3,5 |
| 1 | Medlem3 | 3,8 |
| 3 | Medlem1 | 2,3 |

Sagan om de två tornen har i mitt exempel inte någon recension. Den finns alltså inte med i Betyg-tabellen. Ändå innehåller votes 1.

select titel, ar, f.id, count(b.betyg) as votes, sum(b.betyg)/count(b.betyg) as betyg
 from filmer as f inner join betyg b on f.id = b.filmid
 WHERE f.status='ok' AND Titel LIKE '" & Bokstav & "%' group by f.id " & HAVING

Tack på förhand!

Förkortade rader för att göra läsbart
/LarsG

Medlem sedan dec. 200012 464 inlägg
#29

Det här stämmer inte.

Om du använder den frågan så skall du inte få med Sagan om de två Tornen överhuvudtaget med det datainnehålls som du anger.

Medlem sedan dec. 2002841 inlägg
#30

Nu vet jag vad det var för fel. Det var fel på en querystring :) och blandade ihop inner join och left join.
Ack, ack, ack ;)

Tack för du tog dig tid! :)

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