Jeg leger lidt med tanken om at lave en order by, der er lidt lang. jeg kan dog ikke helt gennemskue hvordan det kan gøres med din løsning. Række følgen er:
ORDER BY SUM(point) DESC, SUM(point) WHERE opg=1 DESC, (SUM(point)-SUM(tab)) DESC, (SUM(point)-SUM(tab)) WHERE opg=1 DESC
Og i nogen situationer vil jeg gerne sætte en limit på fx: LIMIT 0, 1
Nå havde ikke set #3 og #4 der kom imens jeg skrev #5.
Skal nok have den uddybet lidt mere. :) IF(opg=1, 0, 1) ASC
Hvordan ved if-sætningen, at det er sum(point) hvor opg=1 den skal regne med? Altså hvis jeg nu ville have situationen som beskrevet i #5, hvordan kan if-sætningen skelne mellem SUM(point) og (SUM(point)-SUM(tab)) situationen?
Det har måske noget med det sidet 0, 1) at gøre, hvis nej hvad betyder de så?
Jeg synes måske det er lidt svært at forklare. Men jeg prøver på denne måde.
1) Jeg vil gerne have den sortere efter point, med den der har flest point øverst. derfor: SUM(point)
2) Hvis der er flere med samme point, vil jeg gerne have den sortere efter den med flest point i opgave 1 vil ligge øverst. derfor: SUM(point) WHERE opg=1 DESC,
3) Hvis der er flere med samme total point og samme point i opgave 1, så skal den sortere efter differencen på SUM(point) og SUM(tab), så den med den største difference kommer øverst. derfor: (SUM(point)-SUM(tab)) DESC,
4) Til sidst vil jeg gerne have, lavet det sådan, at hvis der er tilfælde hvor rækkefølgen af udtrækkene ikke er bestemt efter de 3 første situationer, så bliver det differencen på SUM(point) og SUM(tab) i opgave 1 der bestemmer hvem der er øverst. derfor: (SUM(point)-SUM(tab)) WHERE opg=1 DESC
[div] ...ORDER BY SUM(point) DESC, SUM(CASE WHEN opg=1 THEN point ELSE 0 END) DESC, SUM(point-tab) DESC, SUM(CASE WHEN opg=1 THEN point-tab ELSE 0 END) DESC [div]
Arne -> dit svar var jo tildels også korrekt, så du må gerne smide et svar, ellers lukker jeg den selv om et par dage.
Mit svar var vel 100% korrekt i forhold til det originale spoergsmaal.
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.