CatZMedlem sedan jan. 20022 440 inlägg Om jag har nedan tabeller och vill räkna ut vilket lag som har mest poäng och sedan sortera på det lag som har mest BortaLagRes+HemmaLagRes hur ska jag göra då?
tblLag
ID
Namn
------------------------
tblMatcher
ID
HemmaLagID
HemmaLagRes
BortaLagID
BortaLagRes
Spelad
Datum
Rond
TurneringsID
------------------------
tblTurneringar
ID
Namn
Jag har funderat på hur man ska göra för att få det att fungera.
select TotalPoang in
(select HemmaLagRes from tblMatcher where HemmaLagID = [B]!! lagets id !![/B])
+
(select BortaLagRes from tblMatcher where BortaLagID= [B]!! lagets id !![/B])
Det är förmodligen inte sånt här man ska fundera på en lördagseftermiddag men jag har inget bättre för mig :)
CatZMedlem sedan jan. 20022 440 inlägg SELECT tblLag.Namn, (SELECT SUM(BortaLagRes) FROM tblMatcher WHERE BortaLagID = BortaLagID) AS BortaLagRes, (SELECT SUM(HemmaLagRes) FROM tblMatcher WHERE HemmaLagID = HemmaLagID) AS HemmaLagRes
FROM tblMatcher INNER JOIN
tblLag ON tblMatcher.HemmaLagID = tblLag.ID AND
tblMatcher.BortaLagID = tblLag.ID
Det borde väl bli nåt åt det hållet jag ska göra men jag får inte ihop det riktigt. Det är ok att samla alla deras hemmalag poäng i en kolumn och alla deras bortalagpoäng i en kolumn i värsta fall.
Någon som kan ge mig en knuff i "rättare" riktning?
CatZMedlem sedan jan. 20022 440 inlägg Lösningen blir då
SELECT
tblLag.Namn,
tblLag.ID,
myHemmaLagRes.HemmaLagRes
FROM
tblLag LEFT OUTER JOIN
(
SELECT
SUM(HemmaLagRes) AS HemmaLagRes,
HemmaLagID
FROM
tblMatcher LEFT OUTER JOIN
tblLag ON tblMatcher.HemmaLagID = tblLag.ID
WHERE
(tblMatcher.HemmaLagID = tblLag.ID )
GROUP BY
tblLag.ID,
tblMatcher.HemmaLagID
) AS myHemmaLagRes ON tblLag.ID = myHemmaLagRes.HemmaLagID
CatZMedlem sedan jan. 20022 440 inlägg Ibland hjälper det att sitta och klura lite på problemet :)