Avatar billede kratluskeren Nybegynder
18. juni 2003 - 20:15 Der er 20 kommentarer og
1 løsning

Sortering af data - tæl ens værdier sammen

Hej jeg håber der er en der kan komme med en snedig løsning.

Jeg har en række data i en db eller array
Ser fx sådan ud:
Rød, Rød, Gul, Rød, Gul, Blå

Koden skal tælle farverne sammen og  skrive
Rød: 3
Blå: 1
Gul: 2

Bemærk: Jeg kender IKKE farverne => dvs. teksten for den vil variere
Avatar billede eagleeye Praktikant
18. juni 2003 - 20:18 #1
Komme de fra en database med X antal kolonner ?
Id  farve
1    blå
2    rød
3    blå
osv
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 20:20 #2
Yes det kan vi godt sige.
Avatar billede eagleeye Praktikant
18. juni 2003 - 20:21 #3
For så kan der laves i SQL og tælle det sammen sådan her:

SQL = "SELECT Count(farve) as antal, farve FROM tabel GROUP BY farve ORDER BY Count(farve) DESC"
Set rs = Conn.Execute(SQL)
do while not rs.EOF
  Response.write rs("farve") & " " & rs("antal")
  rs.Movenext
loop
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 20:34 #4
Jeg får denne: Invalid use of group function
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 20:35 #5
ser ellers frækt ud :)
Avatar billede eagleeye Praktikant
18. juni 2003 - 20:35 #6
Bruger du * i SQL'en ?
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 20:39 #7
Nopes
Avatar billede eagleeye Praktikant
18. juni 2003 - 20:41 #8
Er farve kolonnen defineret som Notat?  for så kan man ikke lave group by på den.
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 20:46 #9
datatypen?
Avatar billede eagleeye Praktikant
18. juni 2003 - 20:48 #10
Er farve i databasen defineret som text eller notat/memo

bruger du den SQL jeg har vist eller tilføjet nogle kolonner?
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 20:50 #11
datatypen er tinytext

...og koden:
SQL = "SELECT Count(farve) as antal, farve FROM tester_colors GROUP BY farve ORDER BY Count(farve) DESC"
Set objRS = objConn.Execute(SQL)
do while not objRS.EOF
  Response.write objRS("farve") & " " & objRS("antal")
  objRS.Movenext
loop
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 20:51 #12
Den fulde fejlbeskr.
ADODB.Recordset.1 error '80004005'

SQLState: S1000
Native Error Code: 1111
[TCX][MyODBC]Invalid use of group function


/farve.asp, line 14
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 21:02 #13
Hvis jeg bruger denne virker det squ:

'SQL = "SELECT Count(farve) as antal, farve FROM tester_colors GROUP BY farve ORDER BY Count(farve) DESC"
SQL = "SELECT Count(farve) as antal, farve FROM tester_colors GROUP BY farve"

Hvad skulle det betyde, det jeg har fjernet?
Avatar billede eagleeye Praktikant
18. juni 2003 - 21:02 #14
Og du skal bruge type  tinytext  ?
Det er sikker noget i samme stil som med Access man kan ikke lave Group By på et memo felt.

Så skal du måske laves typen om til  VARCHAR  og så en længde?
Avatar billede eagleeye Praktikant
18. juni 2003 - 21:03 #15
Glem min sidst kommentar ;)
Avatar billede eagleeye Praktikant
18. juni 2003 - 21:04 #16
ORDER BY det gør den sortere efter antalet så den farve som er der flest gange kommer først.
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 21:04 #17
Jeg håber du svarer på sidste spørgsmål, hermed dine points.
Tak for hjælpen min ven.
Avatar billede eagleeye Praktikant
18. juni 2003 - 21:05 #18
Hvis du vil havde det med så prøv med dette:

SQL = "SELECT Count(farve) as antal, farve FROM tester_colors GROUP BY farve order by antal"
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 21:09 #19
Den er fin
Tak for hjælpen
Avatar billede kratluskeren Nybegynder
18. juni 2003 - 21:09 #20
Skal man lukke spørgsmålet?
Avatar billede eagleeye Praktikant
18. juni 2003 - 21:11 #21
Man lukker et spørgsmål ved at acceptere et eller flere svar, så det har du sådan set gjort :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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

IT-JOB

Politiets Efterretningstjeneste

Fullstack softwareudvikler i PET

JP/Politikens Hus

Klient Tekniker

Politiets Efterretningstjeneste

API-udvikler til PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operationscenter i Cyberdivisionen Hvidovre