Har en tabel der indeholder x records med "brudstykker" af resultater fra sportsbegivenheder.
Data ligger i mySQL-database og kodning sker i ASP. Tabellen er rimelig simpel og indeholder sådan set blot følgende:
Et eksempel på et record-sæt kunne være: ID LigaID KampID HoldID Holdnavn ResType Res 32 52 224 642 Holbæk 1 1 33 52 224 642 Holbæk X 0 34 52 224 642 Holbæk 2 0 35 52 224 642 Holbæk MF 4 36 52 224 642 Holbæk MI 2 37 52 224 644 Korsør 1 0 38 52 224 644 Korsør X 0 39 52 224 644 Korsør 2 1 40 52 224 644 Korsør MF 2 41 52 224 644 Korsør MI 4
Ovenstående fortæller at Holbæk-Korsør endte 4-2 (MF og MI). En masse lignende data findes for andre KampID'er og hold, og samlet set indeholder tabellen oplysninger nok til at kunne bygge en samlet stilling - dette er allerede gjort via en SQL-sætning som nedenstående hvor sorteringen sker "on the fly"
SQL = "SELECT Holdnavn, HoldID, " & _ "sum(case when ResType = ('1') AND result = ('1') then 1 else 0 end) as wins, " & _ "sum(case when ResType = ('X') AND result = ('1') then 1 else 0 end) as draws, " & _ "sum(case when ResType = ('2') AND result = ('1') then 1 else 0 end) as defeats, " & _ "sum(case when ResType = ('1') AND result = ('1') then 3 when ResType = ('X') AND result = ('1') then 1 else 0 end) as points, " & _ "sum(case when ResType = ('MF') then result else 0 end) as goalsfor, " & _ "sum(case when ResType = ('MI') then result else 0 end) as goalsagainst, " & _ "(sum(case when ResType = ('MF') then result else 0 end) - sum(case when ResType = ('MI') then result else 0 end)) as goaldiff " & _ "FROM resultater WHERE LigaID = 52 " & _ "GROUP BY HoldID " & _ "ORDER BY points DESC, goaldiff DESC, goalsfor DESC"
som udskriver a la
K V U T MÅL P 1. Holbæk 9 6 3 0 19-5 21 2. Sorø 9 5 2 2 12-9 17 3. Korsør 9 5 1 3 14-12 16 osv...
Så langt så godt...
Nu ligger problemet i at jeg ikke kan lave afgrænsede udtræk fra tabellen og bygge en "form"-tabel hvor der udtrækkes f.eks. de 6 seneste kampe for alle hold i ligaen.
Mit problem ligger i at jeg ikke kan få sat den "limit" på 6 kampe som ønskes - sættes LIMIT 6 i enden af ovenstående SQL, sker der bare det at den kun udvælger 6 hold, hvilket sikkert skyldes at der GROUP'es på HoldID, og at det er den laves LIMIT på.
Så vidt jeg kan formulere det med ord, så skal der ske følgende:
Der skal udvælges de seneste 6 (DISTINCT'e ?) KampID'er på hvert HoldID og så skal der foretages summeringer og sortering on the fly i stil med den allerede eksisterende SQL-sætning.
Altså både GROUP BY, ORDER BY og LIMIT (og måske DISTINCT) i samme sætning. Py-ha... Anyone?
Hov skulle måske lige læse ordentligt først :) Selvf. ikke * når det ikke er alle felter du vil have, men hvad med det her? SQL = ("SELECT Holdnavn, HoldID, " & _ "sum(case when ResType = ('1') AND result = ('1') then 1 else 0 end) as wins, " & _ "sum(case when ResType = ('X') AND result = ('1') then 1 else 0 end) as draws, " & _ "sum(case when ResType = ('2') AND result = ('1') then 1 else 0 end) as defeats, " & _ "sum(case when ResType = ('1') AND result = ('1') then 3 when ResType = ('X') AND result = ('1') then 1 else 0 end) as points, " & _ "sum(case when ResType = ('MF') then result else 0 end) as goalsfor, " & _ "sum(case when ResType = ('MI') then result else 0 end) as goalsagainst, " & _ "(sum(case when ResType = ('MF') then result else 0 end) - sum(case when ResType = ('MI') then result else 0 end)) as goaldiff " & _ "FROM resultater WHERE LigaID = 52 " & _ "GROUP BY HoldID " & _ "ORDER BY points DESC, goaldiff DESC, goalsfor DESC limit 6")
Som jeg skrev, så har jeg prøvet at sætte limit på. Og så "limiterer" den blot antallet af hold til 6, fremfor at limitere udvalget af kampe for det enkelte hold...
Ohh... Nu forstår jeg hvad du mener... Er det sådan så du evt. kunne sende et dump af din tabel så man kunne prøve det i praksis... Ellers er det for svært at overskue for mig i hvert fald...
Jeg ved ikke hvor interesseret du er i at få en tabel med over 150.000 records - ovenstående er en simplificering af tabellen, men burde være tilstrækkeligt. Sig til hvis du vil have den alligevel...
Evt. bare et dump uden data.. Altså bare tabel-strukturen
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.