|
|
 | Find de to nyeste perioder for hvert mål Fra : Ryan Dahl |
Dato : 24-03-06 23:14 |
|
Hej,
jeg arbejder på et simpelt målstyringsprogram, hvor jeg skal trække de
seneste 2 poster for hvert mål, med henblik på at beregne en tendens.
Problemet er, at jeg ikke ved hvordan jeg skal trække de 2 seneste
poster.
Tabellen ser sådan ud:
kpiID periodID Actual
Acceleration 2 3
Acceleration 5 4
Speed 1 100
Speed 4 200
Speed 7 220
Speed 9 180
Weight 1 22
Weight 3 32
Weight 7 21
Weight 10 33
Hvis jeg f.eks. vil hente den seneste periode for hvert mål, så ville
jeg sætte en forespørgsel sammen, som ser nogenlunde sådan ud:
SELECT table1.kpiID, table1.periodID, table1.Actual
FROM table1 WHERE table1.periodID = (SELECT max(t.periodID) from
table1 as t WHERE t.kpiID=table1.kpiID);
MEN - hvordan får jeg den næstsidste post med?
Ideelt vil jeg gerne have sammensat en forespørgsel med følgende
felter:
kpiID, periodID_nyest, Actual_nyest, periodID_anden_nyest,
Actual_anden_nyest
Alternativt to poster for hvert mål med følgende felter:
kpiID, periodID, Actual
På forhånd tak.
Ryan
| |
Ryan Dahl (25-03-2006)
 | Kommentar Fra : Ryan Dahl |
Dato : 25-03-06 08:23 |
|
Hej,
jeg har fået en løsning.
Hvis der er interesserede er dette en mulighed:
SELECT a.kpiID, a.periodID, a.Actual, b.periodID, b.Actual
FROM table1 AS a
LEFT JOIN table1 AS b
ON b.kpiID = a.kpiID
WHERE a.periodID = (SELECT MAX(t.periodID)
FROM table1 AS t
WHERE t.kpiID = a.kpiID)
AND b.periodID = (SELECT MAX(c.periodID)
FROM table1 AS c
WHERE c.kpiID = a.kpiID
AND c.periodID < a.periodID)
mvh
Ryan
| |
|
|