/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[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'.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste