Avatar billede Slettet bruger
08. januar 2002 - 18:29 Der er 9 kommentarer og
3 løsninger

vedr. MySQL, count() og group by

Hej allesammen.

Jeg er ved at få grå hår... =(((

Har bøvlet nat og dag med følgende:

Eks. på dataudtræk:


ID      Navn          Gade
----------------------------
1        Hugo          Hugovej 1
2        Anders        Andersvej 45
3        Birger        Birgervej 12
4        Hugo          Oguhvej 13

Det jeg nu vil have er følgende:

Navn      Antal
---------------
Hugo        2
Anders      1
.
.
.

Og det skulle helst være med ét SQL-udtræk.

I starten troede jeg jeg var lidt smart ved at bruge følgende SQL.

SELECT Navn, Gade, count(ID) FROM Tabel GROUP BY Name, Gade;


Men jeg får ingen output...

derimod hvis jeg gør følgende:

SELECT Navn, count(ID) FROM Tabel GROUP BY Name;

-- OG Indsætter et Index på kollonen Navn.

Så virker det... Ellers ikke...

hm...

... Og jeg HAR prøvet at tilføje flere indexer !! =)


Håber på en hurtig - god - løsning.


Med venlig hilsen

Michael Svendsen
Avatar billede zeth Nybegynder
08. januar 2002 - 18:39 #1
Prøv sådan her:

SELECT Navn, Gade Count(ID) AS ID FROM tabel1, tabel2 WHERE tabel1.navn = tabel2.navn
Avatar billede zeth Nybegynder
08. januar 2002 - 18:41 #2
eller sådan her måske..

SELECT tabel1.Navn, tabel1.Gade, tabel2.* Count(tabel1.ID) AS Id FROM tabel1, tabel2 WHERE tabel1.navn = tabel2.navn
Avatar billede zeth Nybegynder
08. januar 2002 - 18:42 #3
fuck! hehe

SELECT tabel1.Navn, tabel1.Gade, tabel2.*, Count(tabel1.ID) AS Id FROM tabel1, tabel2 WHERE tabel1.navn = tabel2.navn
Avatar billede cool_casper Nybegynder
08. januar 2002 - 18:42 #4
Jeg tror ikke det kan lade sig gøre med ét SQL-kald...., men derimod med flere...

strSQL = \"SELECT COUNT(ID) AS Antal FROM tabelnavn WHERE navn  = \'Hugo\'\"
Set rs = myConn.Execute(strSQL)

Response.Write rs(\"Antal\") & \"Hugo\'er\"

strSQL = \"SELECT COUNT(ID) AS Antal FROM tabelnavn WHERE navn  = \'Anders\'\"
Set rs = myConn.Execute(strSQL)

Response.Write rs(\"Antal\") & \"Anders\'er\"
Avatar billede Slettet bruger
08. januar 2002 - 19:29 #5
Hej igen.

erhm... zeth... hvor er det lige du får tabel2 fra ??

jeg bruger kun uno tabel dooo :O)

cc>
Måske bliver dette også enden... men rent teoretisk må det kunne la\' sig gøre, da jeg kan fyre SQL\'en af i en MySQLkonsol uden problemos...


// Michael
Avatar billede zeth Nybegynder
08. januar 2002 - 23:11 #6
Oh! :-) Det var mig der havde misforstået spørgsmålet.. jeg troede det var noget JOIN du havde fat i.. hehe.. nårh, men jeg prøver lige at udtænke den *S*
Avatar billede zeth Nybegynder
08. januar 2002 - 23:45 #7
Jeg ved ikke om det var her du havde gang i før.. men sådan noget her burde da virke?

SELECT navn, COUNT(navn) As total FROM tabel WHERE navn=\'Hugo\' OR navn=\'Anders\' GROUP BY navn
Avatar billede Slettet bruger
09. januar 2002 - 12:44 #8
Hej igen.

Problemet er jo, at jeg ikke ved hvilke navne der er i tabellen =(

Har tjekket SQL\'en i SQLkonsolen... og den SKULLE være valid.

SQL:

SELECT Navn, Gade, Count(ID) FROM tabel GROUP BY Navn, Gade;

I MySQL får jeg det rigtige output,
men i ASP, får jeg slet ikke noget...

I PHP, får jeg faktisk også output frem... såeh...

(også derfor jeg valgt kategorien ASP) :O)
Avatar billede zeth Nybegynder
09. januar 2002 - 18:33 #9
Hmnn.. hvis du prøver at bruge dit query.. så brug RS.Getrows

og så

If Not RS.EOF Then Result = RS.Getrows

If isArray(Result) Then
For i = 0 To UBound(Result)
For i2 = 0 To UBound(Result,2)
Response.Write Result(i2,i) & \"<br>\"
Next
Next
Else
Response.write \"der er ingen..\"
End if
Avatar billede Slettet bruger
13. januar 2002 - 23:14 #10
Hej zeth din løsning giver altid \"Der er ingen...\"...

Er ved at få grå har af det her :O(

Ser ud som om at ASP ikke kan løse sådanne SQL-sætninger.

Så er det jo godt jeg også er PHP-nørd =))

Hvis I har andre løsninger er I selvfølgelig velkommen til at gi\' et skud =)


// Michael Svendsen
Avatar billede Slettet bruger
25. januar 2002 - 08:49 #11
Jeg opgi'r.

Bruger PHP for eftertiden. Det ved man hvad er ;o)
Avatar billede ulriklarsen Nybegynder
06. august 2002 - 14:43 #12
Hej newage
Prøv at kigge på din database-connection, og prøv dette:

Conn.Open "DRIVER={MySql}; SERVER=localhost; DATABASE=minDB; UID=root; PWD=; option=16386"

option-parameteren gør at der returneres noget ved brug af count.

mvh. Ulrik
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