Största differences.

PHPportalen Forum Index » Databaser
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Dumfot



Medlem i: 4103 dagar
Från: Stockholm
Status: Offline



#740741
Inlägg Skrivet: 2016-05-16 12:43      Ämne: Största differences. Citera

Hallå där alla SQL gurus.
Det var ett tag sen nu jag höll på med SQL och har tappat lite i hur det var att få till det där sista lilla Razz

Jag har en SQL Databas och där i har jag massor av statistik. I just denna tabell har jag lite resultat och skulle behöva räkna ut den största segern jag har.
Visst just den biten kanske inte är den svåraste. MEN! till saken hör att jag har både hemma och bortalags resultat.
Tittar man i Tabellen Nyhet så har jag följande intressanta rader:


    resultath
    resultatb
    hlag
    blag

Jag har ytterligare en tabell med lagnamn i som jag joinar ihop med nyhetslistan.
För att få ut en lista med namn och resultat kör jag med denna:
KOD:
1:
 
2:
SELECT Nyhet.id, Nyhet.resultath, Nyhet.resultatb, hlag.lag AS hlag, blag.lag AS blag
3:
FROM Nyhet
4:
JOIN Lag AS hlag ON Nyhet.hlag = hlag.id
5:
JOIN Lag AS blag ON Nyhet.blag = blag.id
6:
WHERE typ =0
7:
ORDER BY resultath DESC
8:
 


Då ser resultatet ut ungefär såhär:


    id resultath resultatb hlag blag
    068 15 1 Lag1 Lag32
    279 11 3 Lag1 Lag10
    215 9 0 Lag1 Lag22
    108 9 0 Lag12 Lag1
    213 8 0 Lag20 Lag1


Till problemet, Laget med ID 1 = Lag1 här ovan är även det lag jag vill få ut som segrare och det laget med största segermarginalen för.
Så det lätta borde vara att köra något i form av Där lag med ID=1 Räknar ut det laget (hlag/blag) minus det andra lagets resultat.
Är det någon som har en bra ide på hur man smartast får ut det.
 

_________________
//Dumfot
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Dumfot



Medlem i: 4103 dagar
Från: Stockholm
Status: Offline



#740770
Inlägget är accepterad som det rätta svaret Skrivet: 2016-05-23 09:57      Ämne: Löste det efter lite olika test. Citera

KOD:
1:
SELECT Nyhet.id, Nyhet.resultath, Nyhet.resultatb, hlag.lag AS hlag, blag.lag AS blag
2:
FROM Nyhet
3:
JOIN Lag AS hlag ON Nyhet.hlag = hlag.id
4:
JOIN Lag AS blag ON Nyhet.blag = blag.id
5:
WHERE typ =0
6:
order by (resultath - resultatb) *
7:
(case
8:
when hlag.id = 1 then 1
9:
when blag.id = 1 then -1
10:
else 0
11:
end)
12:
Desc LIMIT 0,1
13:
 


på det sättet fick jag fram den största segraren oavsett om laget med id 1 är hemma eller bortalag.
 

_________________
//Dumfot
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Databaser
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic