11. marts 2004 - 17:37Der er
3 kommentarer og 1 løsning
SQL Gruppering
Hejsa,
jeg skal have lavet en lidt speciel gruppering (som skal sorteres efter højeste points), som vedrører 4 forskellige beregninger fra data i 1 tabel. Tabellen indeholder f.eks: ----- SpillerID | SpillerNavn | Position | Mål | Skud | Taklinger | Afleveringer | Erobringer | Redninger |
Hvis der er tale om en midtbanespiller er ovenstående tal anderledes, dvs. jeg sikkert skal bruge 4 SQL-sætninger indeni hinanden. Før havde jeg nedenstående SQL som bare udregnede Målmand-points:
SELECT Top 32 PlayerID, HoldID, SUM(udregning herinde) as maalmandpts FROM playerstats WHERE Playerposition = 'Maalmand' AND RundeNr < 3 GROUP BY PlayerID, HoldID ORDER BY SUM(udregning herinde) DESC
Nogen der kan guide mig hen i at få lavet en (sikkert meget stor) SQL-sætning der tager højde for de 4 positioner og får lavet 4 forskellige beregninger ud fra det? Og samtidig sorterer det efter scoren?
Lav en anden tabel (kaldet Spillertyper): Position | TaklingScore | AfleveringScore | ErobringScore | SkudScore | MålScore Målmand | 0.1 | 0.05 |´0.06 | 0.12 | 0.25 ...
Hvor Position svarer til Position i din nuværende tabel (kaldet Spillere), og de andre angiver de tal du nævner (0,10, 0,05, 0,06, 0,12, 0,25, osv) for den pågældende position på banen.
Så laver du udtrækket som: SELECT s.PlayerId, s.HoldId, andreFelter, SUM( s.Taklinger * t.TaklingScore + ... s.Mål * t.MålScore ) AS Points FROM Spillere s LEFT JOIN SpillerTyper t ON s.Position = t.Position GROUP BY s.PlayerId, s.HoldId ORDER BY SUM( ... ) DESC
Så er det også nemt at tilrette vægtene, da de bare skal rettes i tabellen SpillerTyper.
Synes efterhånden der er en del af dem - respekt :)
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.