31. juli 2002 - 21:14Der er
19 kommentarer og 2 løsninger
Denne SQL
Jeg skal ha' flg. klaret med denne SQL:
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
Fra tabellen "beskeder" skal den kun vise beskeder som er SMS'er. Dvs. en "WHERE sms = true" skal ind i SQL'en et eller andet sted. Men hvor? Kan sgu ikke få det til at virke.
Derudover skal jeg bruge enten RS brugerid (fra tabellen "brugere") eller RS frabrugerid (fra tabellen "beskeder") - de er nemlig ens.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn FROM brugere INNER JOIN beskeder ON (brugere.brugerid = beskeder.frabrugerid) AND beskeder.sms=true GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
En lille rettelse: SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn FROM brugere INNER JOIN beskeder ON (brugere.brugerid = beskeder.frabrugerid AND beskeder.sms=true) GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
Synes godt om
Slettet bruger
31. juli 2002 - 21:22#4
Hvordan kan jeg trække RS brugerid (fra tabellen "brugere") eller RS frabrugerid (fra tabellen "beskeder") ud og smide i en variabel? Den skal jeg nemlig bruge.
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn as etnavndusætter, brugere.brugerid as etbrugerid FROM brugere INNER JOIN beskeder ON (brugere.brugerid = beskeder.frabrugerid AND beskeder.sms=true) GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
Nu har du lavet to navne til de to variabler, og de kan fanges på RS("etnavndusætter") RS("etbrugerid")
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn as brugernavn, brugere.brugerid as brugerid FROM brugere INNER JOIN beskeder ON (brugere.brugerid = beskeder.frabrugerid AND beskeder.sms=true) GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
= Du har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk "brugerid" som en del af en aggregatfunktion.
... brugere.brugerid as brugerid FROM ... Du må ikke kalde den brugerid, kald den noget andet
Synes godt om
Slettet bruger
31. juli 2002 - 21:39#10
Når en bruger smider en besked i databasen, så får denne besked et RS der hedder "frabrugerid" som svarer til "brugerid" fra tabellen "brugere". "Frabrugerid" og "brugerid" er altså ens - de står i hver sin tabel for at lave sammenhængen.
Fordi de er ens kan jeg brugen enten "frabrugerid" eller "brugerid", som jeg skal have smidt i en variabel.
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, brugere.brugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
Hvis du laver den her ...brugere.brugerid as dbbrugerid ... kan du på dit recordset trække den ud med RS("dbbrugerid") hvis dit recordset vel og mærke hedder RS
Synes godt om
Slettet bruger
31. juli 2002 - 21:50#15
twm - jeg får samme fejl: Du har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk "dbbrugerid" som en del af en aggregatfunktion.
Koden: Set RS = server.CreateObject("ADODB.connection") ConnString= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("databas.mdb") RS.open ConnString if show = 1 then SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, brugere.brugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;" else SQL = "SELECT TOP 10 Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, brugere.brugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;" end if set RS = RS.execute(SQL) dbbrugerid = RS("dbbrugerid")
Prøv denne i stedet for der henter den tallet fra den anden tabel
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, beskeder.frabrugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn ORDER BY Count(beskeder.frabrugerid) DESC;"
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, brugere.brugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY brugere.brugernavn, brugere.brugerid ORDER BY Count(beskeder.frabrugerid) DESC;"
SQL = "SELECT Count(beskeder.frabrugerid) AS antalBeskeder, brugere.brugernavn, beskeder.frabrugerid as dbbrugerid FROM brugere INNER JOIN beskeder ON brugere.brugerid = beskeder.frabrugerid WHERE sms = true GROUP BY beskeder.frabrugerid ORDER BY Count(beskeder.frabrugerid) DESC;"
I denne bruger den group by fra den samme tabel som den kører count på, jeg ved ikke om det fejlen da jeg jo ikke kan teste det :)
Synes godt om
Slettet bruger
31. juli 2002 - 22:04#20
Tak - det ser ud til at virke. Jeg splitter pointene!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.