Avatar billede 1416 Nybegynder
29. juni 2000 - 22:37 Der er 14 kommentarer og
1 løsning

SQL problem

Hejsa!
Jeg er ved, at lave et system om fra en access db, til mysql.
Jeg brugte tidligere nedstående sql-sætning, tyvstjålet fra eksperten :-)

SQL = "SELECT oplos, Count(oplos) AS Antal FROM log GROUP BY oplos ORDER BY Antal DESC"

Det, den gør er, at den summerer op, over hvert nyt navn (oplos) den finder.
Dvs, at jeg får et recordset ud, som kunne se sådan ud:

Oplos    Antal
1024*768    10
800*600      5
1200*1024    2

Sådan var det før, men nu tæller den galt! Tallet ud for den første opløsning bliver ligmed tallet af rækker i db´en ?!?
Nogen, der kan hjælpe?

Avatar billede phylox2 Nybegynder
29. juni 2000 - 22:45 #1
SQL = "SELECT Count(oplos) AS Antal FROM log GROUP BY oplos ORDER BY Antal DESC"

Vil jeg sige ... kender dog ikke så meget til MySQL :)
Avatar billede erikjacobsen Ekspert
29. juni 2000 - 23:17 #2
Jeg synes du skal prøve:

SQL = "SELECT oplos, Count(*) AS Antal FROM log GROUP BY oplos ORDER BY Antal DESC"
Avatar billede 1416 Nybegynder
30. juni 2000 - 00:56 #3
phylox: din virker ikke..den eneste forskel på det oprindelige, og dit forslag er jo bare, at du ikke hiver oplos med ud...

erikjac: dit forslag virker heller ikke...den tæller stadig bare alle posterne...
Avatar billede steffen Nybegynder
01. juli 2000 - 12:33 #4
GROUP BY .. ORDER BY .. DESC er fejlbehæftet i tidlige versioner af MySQL.

Sørg for at opgradere til en nyere version .. efter hukommelsen skal den være nyere end .. umm .. .33 til sidst.

Det kunne løse problemet.
Avatar billede 1416 Nybegynder
01. juli 2000 - 16:41 #5
jeg bruger 3.22.34...
Avatar billede erikjacobsen Ekspert
05. juli 2000 - 21:55 #6
Ok, 1416. Jeg har prøvet en variant. En liste over fødselsdage, hvor et felt er en alder (heltal)
Når jeg fyrer denne af

SELECT alder, Count(*) AS Antal FROM fdage GROUP BY alder ORDER BY Antal DESC

får jeg en tabel som denne (der er 22 der er 4 år gamle, osv.):

alder    Antal
    4        22
    3        17
    5        16
    2        11
    1          6
    6          1

og det er det som jeg tror du spørger om. Hmm, jeg ved faktisk ikke lige hvilken version mit
webhotel har. Det kunne jeg jo undersøge.

Avatar billede 1416 Nybegynder
05. juli 2000 - 23:52 #7
hmmm det hjælper ikke! Hvilken version har dit webhotel?
Avatar billede 1416 Nybegynder
06. juli 2000 - 00:03 #8
den tæller ca 2 gange for meget +/- 5...det er rimeligt mærkeligt
Avatar billede erikjacobsen Ekspert
06. juli 2000 - 00:18 #9
Min webcampingplads bruger 3.22.25 - og det er ifølge http://www.mysql.com lidt gammelt, da de allerede
er oppe på 3.23.21. Men den virker jo, ;-)

Har du prøvet uden ORDER BY ?
Avatar billede beaviz Nybegynder
07. juli 2000 - 14:46 #10
HVordan ser tabellen helt præcis ud? (hvilken kode har du brugt til at lave den med?)
Avatar billede 1416 Nybegynder
07. juli 2000 - 22:28 #11
sådan her:
create table log (
  id int unsigned not null auto_increment,
  oplos char(9),
  browser char(125),
  dato date,
  referer char(254),
  primary key (id)
)

Avatar billede 1416 Nybegynder
07. juli 2000 - 22:40 #12
jeg prøvede, for sjov, at overføre date´en til min udbyder, og teste min sql der..det virkede!
EJ får pointene, for han kom med en løsning, der virkede...jeg har dog ikke brugt den, da det er bedre med COUNT(oplos), end COUNT(*)
Men tak!
Avatar billede erikjacobsen Ekspert
07. juli 2000 - 22:55 #13
Ok - herligt. Det var kun "hjemme hos dig selv" det ikke virkede. Mon det
var et MySql-versionsproblem....??
Avatar billede 1416 Nybegynder
07. juli 2000 - 23:07 #14
det tror jeg.
Koden er 100% den samme.
Tabellen er defineret med den samme sql-sætning.
Indholdet er tabellen er der ikke ændret ved.
Så det er nok en versions problem.
Avatar billede steffen Nybegynder
07. juli 2000 - 23:48 #15
Tja .. :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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