Hvor sidder den tabel? I en mysql database? Saa er det noget i retning af "SELECT maaned, MAX(besoegende) FROM Aar GROUP BY maaned". Det henter du med PHP ved kode saa som:
<? $result = mysql_query("SELECT maaned, MAX(besoegende) FROM Aar GROUP BY maaned"); while ($row = mysql_fetch_array($result)) { echo $row[0] . " " $row[1] . "<br/>" } ?>
Hvis det sidder i en hjemmeside der bestaar eller er under udvikling saa send koden eller linket til siden. Saa kan jeg vare mere konkret.
Jeg laeste spoergsmaalet for hurgtigt, det var ikke antal besoegende per maaned men maaneden med stoerst besoeg. Saa skal vi have fat i en saakaldt sub-select. Det vender jeg lige tilbage til (med mindre en anden kommer med loesningen foer mig.)
Hvis tabellen kun indeholder et tal per maaned, nemlig totalbesoeget, saa er querien den foelgende:
SELECT maaned, besoeg FROM aar WHERE besoeg = ( SELECT MAX( besoeg ) FROM aar)
Hvis du har daglige besoegstal saaledes at du foerst maa finde total besoeg per maaned og derefter hvilken maaned havde det stoerste besoegstal saa virker det at lave et View, en hjaelpetabel, saaledes:
CREATE VIEW V_maxMaaned(maaned, besoegende) AS SELECT maaned, SUM(besoeg) FROM aar GROUP BY maaned
og saa den foelgende query:
SELECT maaned, besoegende FROM V_maxMaaned WHERE besoegende = ( SELECT MAX(besoegende) FROM V_maxMaaned)
For at teste det lavede jeg den foelgende tabel:
maaned besoeg jan 5 jan 7 jan 3 jan 12 feb 17 feb 7 feb 3 mar 18 mar 11 mar 3 mar 6 mar 1
og fra den tabel giver ovenstaaende query det foelgende resultat:
maaned besoeg feb 17
Det kan saa hentes fra mysql med php statements som jeg skrev i mit tidligere indlaeg.
Som sagt, hvis du sender en konkret hjemmeside hvor det skal virke kan jeg komme med forslag.
Saa vil jeg mene at du har den forkerte struktur i din tabel. Du benytter dig ikke af den relationelle databasestruktur; jan, feb, o.s.v. er samme slags ting. En normaliseret struktur er en tabel med, for eksempel, bruger, maaned, besoeg. For at teste lavede jeg denne tabel med fire brugere over tre maaneder:
bruger maaned besoeg 47da jan 2 47da feb 200 47da mar 33 4827 jan 857 4827 feb 490 4827 mar 33 484d jan 0 484d feb 36 484d mar 8 485t jan 22 485t feb 33 485t mar 555 48dg jan 0 48dg feb 20 48dg mar 37 48a4 jan 1 48a4 feb 23 48a4 mar 57
(Saa skulle du nok have en tabel bruger og en "foreign key" fra aar til bruger for at holde styr paa hvilke brugere du har.)
En saadan tabel er det nemt at spoerge, se nedenfor. Hvordan man skal skrive en query der finder den stoerste vaerdi af 12 forskellige kolonner met 12 forskellige vaerdier ved jeg ikke (det kan vel lade sig goere, men det goer vold paa de relationelle principper.)
Hvis du, med min foreslaaede tabel struktur, regelmaessigt vil finde den maaned med det hoejeste totale besoegstal saa laver du en gang for alle i databasen den foelgende View:
CREATE VIEW V_maxMaaned(maaned, besoeg) AS SELECT maaned, SUM(besoeg) FROM aar2 GROUP BY maaned
og saa bliver din query:
SELECT maaned, besoeg FROM V_maxMaaned WHERE besoeg = ( SELECT MAX(besoeg) FROM V_maxMaaned)
Resultatet af den query paa min foreslaaede tabel med data er:
Bortset fra at jeg ikke vil kalde det et normaliserings problem og at jeg ville bruge en numerisk værdi for måned, så er jeg helt enig med Christians forslag.
xpresand, fik du kikket paa koden? Forventer du flere inputs. Ellers ville det vaere godt om du ville lukke spoergsmaalet. Det giver god orden, og saa staar det ikke laengere som aabent i min liste af indlaeg. Bed om svar fra de som skal have points (jeg har allerede sendt et svar hvis du mener at have brugt mit indlaeg.) Saa er der ryddet op, og vi er klar til de naeste spoergsmaal.
Jeg har fundet en anden kode, som løser problemet på en helt anden måde. Men du får dine point alligevel som tak for hjælpen.
Synes godt om
Ny brugerNybegynder
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.