webForumDet fria alternativet

sortera efter annan MAX()... (?)

4 svar · 357 visningar · startad av herq

herqMedlem sedan aug. 2000238 inlägg
#1

jag har följande tabell

tblTable

[id]	[stamp]	[belong_id]
[b]1[/b]	11111	[b]1[/b]
2	11112	1
3	[b]11113[/b]	1
[b]4[/b]	11114	[b]4[/b] 
5	11115	4
6	11116	4
7	[b]11117[/b]	4
[b]8[/b]	11118	[b]8[/b]
9	[b]11119[/b]	8
osv...

nu skulle jag vilja ordna till denna tabell mha en sqlsats så jag får följande resultat, (absolut inte alter'a tabellen på ngt sätt, bara skapa en ny vy):

[id]	[stamp]	[belong_id]	[maxstamp] (önskat resultat)	[maxstamp] (faktiskt resultat)
1	11111	1		11113				11111
4	11114	4		11117				11114
8	11118	8		11119				11118

det önskade resultatet uppfyller:
1 [id] och [belong_id] måste vara samma, resten rensas bort.
2 det har kommit till ett field [maxstamp].
3 i [maxstamp] så finns det högsta [stamp]-värdet lagrat för vilka records där belong_id är desamma.
4 och det hela måste sorteras efter [maxstamp].

jag har klurat på det alldeles för länge o kommit fram till följande:

SELECT *, MAX(stamp) AS maxstamp FROM tblTable WHERE id = belong_id GROUP BY maxstamp DESC

med denna sats uppfyller jag bara önskningarna #1, #2 och #4,
tyvärr så har "[maxstamp] (faktiskt resultat)" inte förstått att det finns större [stamp]-värden att tillgå (så länge [belong_id] är densamma) (villkor #3)

jag använder mig av en MySQL databas.

snälla snälla snälla hjälp mig.

(en lösning där [stamp] kolumnen försvann vore kanske för mkt att hoppas på?, men önskvärt)

m_soderlundMedlem sedan sep. 20026 425 inlägg
#2

Min första fundering är om belong id kan ställa till det eftersom det finns ett mellanslag i kolumnnamnet. Testa att ha understreck i stället och se hur det fungerar då. :)

Fast å andra sidan kanske du borde få ett syntax error i så fall.. men men - testa.

herqMedlem sedan aug. 2000238 inlägg
#3

den skulle lika gärna kunna heta abc

det är inte där skon klämmer.

/r fresten har jag ju använt _ o inga mellanslag i exemplet.

LarsGMedlem sedan dec. 200012 464 inlägg
#4
SELECT belong_id, MAX(stamp) AS maxstamp 
FROM tblTable 
GROUP BY belong_id
order by maxstamp
herqMedlem sedan aug. 2000238 inlägg
#5

tack SÅ mkt lars. det funkade perfa.

tack ngt helt enormt. jag blir så glad!

det FUNKAR ju LIKSOM!

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