Avatar billede bootlab Nybegynder
30. juni 2003 - 14:19 Der er 11 kommentarer og
1 løsning

select count m.m

Hey!

Jeg sidder og prøver at lave et udtræk fra en db hvor jeg både vil vise posterne samt tælle dem på en gang...

Jeg har prøvet flg:
sql = "SELECT COUNT(*) AS Tal, Id, " & GetIt & " FROM Contacts Where " & GetIt & " LIKE '%" & Find & "%'"
sql = sql & " ORDER BY " & GetIt & ";"

Men det funger ikke!!

Den siger:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Du har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk "Id" som en del af en aggregatfunktion.

Forslag?
Avatar billede cesil Nybegynder
30. juni 2003 - 14:37 #1
sql = "SELECT COUNT(*) AS Tal, Id, " & GetIt & " FROM Contacts Where " & GetIt & " LIKE '%" & Find & "%'"
sql = sql & " ORDER BY " & GetIt & ""
sql = sql & " group BY id," & GetIt & ";"
Avatar billede cesil Nybegynder
30. juni 2003 - 14:38 #2
hov jeg skulle ikke ha trykket endnu.
Du skal lave en group by med alle felter i din select, undtagen Tal(i dit tilfælde)
Avatar billede jdi Nybegynder
30. juni 2003 - 14:39 #3
Du skal have group by med. så dit select statement komme til at se ud som følger:

select id, count(*)as tal
from
  contacts
where
  getit like "%"
group by id
order by id

Dette skulle være syntaksen
Avatar billede cesil Nybegynder
30. juni 2003 - 14:41 #4
i jdi's svar mangler det felt der gemmer sig i din variabel GetIt. Det skal også med i din group by
Avatar billede bootlab Nybegynder
30. juni 2003 - 15:03 #5
Nu har jeg den såen:

sql = "SELECT Id, " & GetIt & ", COUNT(*) AS Tal FROM Contacts Where " & GetIt & " LIKE '%" & Find & "%'"
sql = sql & " ORDER BY " & GetIt
sql = sql & " GROUP BY 'Id, " & GetIt & "';"

Det funger stadigvæk ikke!

Den siger:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "Fornavn GROUP BY 'Id, Fornavn'".
Avatar billede vbmojo Nybegynder
30. juni 2003 - 15:46 #6
sql = "SELECT Id, " & GetIt & ", COUNT(*) AS Tal FROM Contacts
sql = sql & " GROUP BY Id, " & GetIt & ", Tal"
sql = sql & " HAVING " & GetIt & " LIKE '%" & Find & "%'"
sql = sql & " ORDER BY " & GetIt
Avatar billede vbmojo Nybegynder
30. juni 2003 - 15:47 #7
sql = "SELECT Id, " & GetIt & ", COUNT(*) AS Tal FROM Contacts "
sql = sql & " GROUP BY Id, " & GetIt & ", Tal"
sql = sql & " HAVING " & GetIt & " LIKE '%" & Find & "%'"
sql = sql & " ORDER BY " & GetIt
Avatar billede vbmojo Nybegynder
30. juni 2003 - 15:47 #8
Det var vel egentlig et svar.
Kommentaren kl 15:46 manglede et citationstegn.
Sorry.

/vbMoJo
Avatar billede vbmojo Nybegynder
30. juni 2003 - 15:50 #9
Du bør nok debugge undervejs, og få vist dit sql statement inden det bliver fyret af. På den måde vil du hurtigt kunne se fejl og mangler.
Avatar billede bootlab Nybegynder
30. juni 2003 - 16:00 #10
SÅÅÅDAN DO :D

vbmojo > det virkede efter en lille modifikation!

Sådan ser det ud nu:

sql = "SELECT Id, " & GetIt & ", COUNT(*) AS Tal FROM Contacts "
sql = sql & " GROUP BY Id, " & GetIt
sql = sql & " HAVING " & GetIt & " LIKE '%" & Find & "%'"
sql = sql & " ORDER BY " & GetIt

Tak for hjælpen :)

/boot
Avatar billede bootlab Nybegynder
30. juni 2003 - 16:01 #11
By the way!

Hvordan debugge?
Avatar billede vbmojo Nybegynder
30. juni 2003 - 16:11 #12
Du kan enten lave et lille popup vindue der viser dig indholdet af sql-strengen, eller bare vise dig den længere nede på side.
Bare så du umiddelbart kan se hvad din SQL-streng indholder - og sammenholde det med det resultat du får tilbage.
Glad for at det virkede - og lidt forundret over at Tal ikke skulle med i din GROUP BY.
Well - tak for points.

/vbMoJo
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester