M Maister Medlem sedan juli 2001 65 inlägg Frågan 13 sep. 2001 17:04 #1 Jag har en databas som innehåller alla dragningar av keno, och har följande kolumner i tabellen:
Datum, knr1, knr2 .... knr20
Datum är när dragningen var, och knr1-knr20 innehåller varje nummer som drogs i varsin kolumn.
Nu vill jag ta och söka igenom databasen och hitta när ett vist nummer drogs senast, så jag kan få fram hur många dragningar numret inte kommit upp i irad. Kör jag SQL kommandot SELECT så hittar den väl alla, och jag vill bara ha den senaste. Hur löser jag det så att sökningen blir så snabb som möjlig?
Maister
@nders Medlem sedan juni 2000 32 967 inlägg strSQL = "SELECT TOP 1 * FROM tblKeno WHERE knr1 = " & numret & " OR knr2 = " & numret & " OR ....... ORDER BY datumfältet DESC"
Jag undrar dock varför du har 20 fält i tabellen? Jag hade helt klart haft mig en kolumn för dragna nummer och en för dragning. Det blir dessutom lättare att skriva SQL-frågor mot en sådan tabell.
Mvh,
------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html
M Maister Medlem sedan juli 2001 65 inlägg Du menar ha alla numren i en och samma kolumn avskilda med t.ex. "," eller?
(ex: 1,2,12,23,24...)
Blir det någon skillnad, förutom att SQL-frågorna blir lättare?
Maister
@nders Medlem sedan juni 2000 32 967 inlägg
Du menar ha alla numren i en och samma kolumn avskilda med t.ex. "," eller?
Herre gud, nej! :)
En post per draget nummer.
[red]ID draget datum
-------------------------------
1 12 2001-09-13
2 60 2001-09-13
3 52 2001-09-13
4 1 2001-09-13
...[/red]
------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html
M Maister Medlem sedan juli 2001 65 inlägg nja, jag ska dra ut annan info ur tabell också, och jag vill kunna se vilka nummer som blev dragna när.
Jag har över 1400 dragningar i tabellen.
Maister
M Maister Medlem sedan juli 2001 65 inlägg strSQL = "SELECT TOP 1 * FROM tblKeno WHERE knr1 = " & nr1 & " OR knr2 = " & nr1 & " ORDER BY Datum DESC"
Körde koden ovan och fick följande fel:
Too few parameters. Expected 2.
Något jag har missat?
Maister
@nders Medlem sedan juni 2000 32 967 inlägg Det beror på.
Har du sett till så du använder rätt tabell- och fältnamn i frågan?
Har variabeln nr1 något värde?
------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html
M Maister Medlem sedan juli 2001 65 inlägg 1. Tabell- och fältnamn är rätt.
2. nr1 = 5
Maister
@nders Medlem sedan juni 2000 32 967 inlägg Din tabell heter alltså precis som jag gissade, tblKeno? Kusligt...
Skriv ut sql-frågan med response.write. Ser den ok ut?
------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html
M Maister Medlem sedan juli 2001 65 inlägg Jag vet, kusligt :)
Du vet, vi proffs följer väl en oskriven standard ;)
SELECT TOP 1 * FROM tblKeno WHERE knr1 = 5 OR knr2 = 5 ORDER BY Datum DESC
Ser rätt ut tycker jag.
Maister
@nders Medlem sedan juni 2000 32 967 inlägg knr-fälten är av typen tal?
Går det bättre om du klamrar fältet Datum?
------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html
@nders Medlem sedan juni 2000 32 967 inlägg Varför är de inte av typen tal när det är tal som ska lagras där?
Man skall ha apostrofer runt strängvärden i sql-frågor.
strSQL = "SELECT TOP 1 * FROM tblKeno WHERE knr1 = '" & nr1 & "' OR knr2 = '" & nr1 & "' ORDER BY [Datum] DESC"
------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html
M Maister Medlem sedan juli 2001 65 inlägg Nu är de tal :)
[Datum] hjälpte inte heller :(
Maister
M Maister Medlem sedan juli 2001 65 inlägg ÅÅÅHHHH! Dumma mig! Löste problemet :)
Maister
[Redigerat av Maister den 13 sep 2001]