|
| [MSSQL] SELECT MAX() plus lidt ekstra? Fra : Stefan Kristensen |
Dato : 23-10-02 12:43 |
|
Hej NG.
Jeg har to tabeller som følger:
States:
ID OrgUnit Step State Date
1 A 1 1 22-10-02
1 B 1 1 22-10-02
1 A 2 2 23-10-02
2 B 1 1 22-10-02
2 B 2 2 23-10-02
StateNames:
State Text
1 Afventer
2 Godkendt
Hvordan SELECT'er jeg de poster i States for et givent ID med det højeste
step kombineret med teksten fra StateNames?
Altså for ID = 1 vil jeg have
ID OrgUnit Step State Text Date
1 A 2 2 Godkendt 23-10-02
1 B 1 1 Afventer 22-10-02
Og for ID = 2 vil jeg have
2 B 2 2 Godkendt 23-10-02
Hvis jeg kan nøjes med felterne OrgUnit og Step kan jeg få det til at virke
med Max(Step) og GROUP BY OrgUnit, men jeg kan ikke nøjes med de felter. Jeg
har prøvet med CROSS JOIN og INNER JOIN, men kan ikke få det ønskede
resultat.
Nogle ideer?
På forhånd tak
Stefan
| |
Svend Weiersøe (23-10-2002)
| Kommentar Fra : Svend Weiersøe |
Dato : 23-10-02 13:28 |
|
"Stefan Kristensen" <a@a> skrev i en meddelelse
news:3db68a7b$0$97609$edfadb0f@dspool01.news.tele.dk...
> Hej NG.
>
> Jeg har to tabeller som følger:
> States:
> ID OrgUnit Step State Date
> 1 A 1 1 22-10-02
> 1 B 1 1 22-10-02
> 1 A 2 2 23-10-02
> 2 B 1 1 22-10-02
> 2 B 2 2 23-10-02
> StateNames:
> State Text
> 1 Afventer
> 2 Godkendt
>
> Hvordan SELECT'er jeg de poster i States for et givent ID med det højeste
> step kombineret med teksten fra StateNames?
> Altså for ID = 1 vil jeg have
> ID OrgUnit Step State Text Date
> 1 A 2 2 Godkendt 23-10-02
> 1 B 1 1 Afventer 22-10-02
> Og for ID = 2 vil jeg have
> 2 B 2 2 Godkendt 23-10-02
>
> Hvis jeg kan nøjes med felterne OrgUnit og Step kan jeg få det til at
virke
> med Max(Step) og GROUP BY OrgUnit, men jeg kan ikke nøjes med de felter.
Jeg
> har prøvet med CROSS JOIN og INNER JOIN, men kan ikke få det ønskede
> resultat.
>
> Nogle ideer?
> På forhånd tak
> Stefan
>
>
Følgende virker i ACCESS
SELECT Xstates.ID, Xstates.OrgUnit, Xstates.Step, Xstates.State,
StateNames.Text, Xstates.Date
FROM StateNames INNER JOIN States AS Xstates ON StateNames.State =
Xstates.State
where Xstates.Step = (select max (Step) from states where id = Xstates.ID
and
OrgUnit = Xstates.OrgUnit)
mvh
SWN
| |
Stefan Kristensen (23-10-2002)
| Kommentar Fra : Stefan Kristensen |
Dato : 23-10-02 14:21 |
|
Du er jo for vild en SQL haj
Jeg var jo ude i noget værre snavs, men det her er jo dejlig simpelt, og så
virker det...
Mange tak for hjælpen.
Stefan
ps.
Det her kommer nok lidt sent, da der er problemer hos TDC, men tak det skal
du ha'.
| |
|
|