webForumDet fria alternativet

SQL-problem som har med MAX att göra

2 svar · 252 visningar · startad av TompusTuffing

TompusTuffingMedlem sedan jan. 20043 inlägg
#1

Halloj!

Sitter med en tabell som ser ut såhär (tabellen utgör en del av en auktionsfunktion).

BidID (PK)
UserName - användare som lagt bud
BookID - objektet budet omfattar (i detta fall en bok)
Bid - budet i kronor

En användare kan ha flera bud på samma bok (egentligen är BidID:t kanske överflödigt - sammansatt nyckel... men men). Jag vill få fram de BidID:n där en viss användare har angivit högst bud men får det inte att funka.

ett exempel:

BidID	BookID	UserName	Bid
1	2	tcs		500
2	3	tcs		300
3	2	alr		600
4	2	tcs		650
5	3	tad		400
6	5	tcs		300
7	5	glr		350
8	3	elr		450
9	3	tcs		500

Jag vill alltså få fram en förteckning över de BidID där exempelvis 'tcs' har högst bud på respektive BookID. Skall i ovan beskriva fall resultera i följande:

BidID
4
9

Jag vet att jag skall använda mig av MAX o.s.v men har försökt rätt länge nu utan att lyckas så jag vore tacksam för lite hjälp. Jag sitter med en Access-databas...
Tack så länge!

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select * from bidTabell bt
where bid = 
    (select max(bid) 
        from bidTabell
      where bookid = bt.bookid)
where username = 'tcs')
TompusTuffingMedlem sedan jan. 20043 inlägg
#3

Ah, 1000 tack LarsG. Nu funkar det! Tack igen... (sista parantestecknet skall bytas ut mot ett semikolon).

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)