webForumDet fria alternativet

Exsist??

3 svar · 243 visningar · startad av Gladh

GladhMedlem sedan maj 20012 812 inlägg
#1

Tja!

Jag har följande SQL sats som fungerar nästan så som jag vill:

SELECT XceptionId, MessageId, LogMessageDateTime, ApplicationName, ExceptionMessageString, LogLevelId 
	FROM message m1 
	WHERE messageId IN(
		SELECT Top 200 Min(MessageId) as MessageId
			FROM dbo.Message m2
			WHERE LogLevelId <= 20 AND LogMessageDateTime BETWEEN '2005-05-17 04:06:09' AND '2005-05-24 10:07:10' 
			GROUP BY XceptionId 
			ORDER BY MessageId DESC
	) 
	ORDER BY LogMessageDateTime DESC

Problemet är bara att sorteringen på MessageId inte är riktigt korrekt, utan jag skulle hellre vilja göra en ORDER BY på LogMessageDateTime DESC istället för MessageId, då kan jag inte använda IN utan skall använda Exists istället, det har jag testa en lite stund nu och jag kan inte få till frågan så att det returneras "samma resultat".

Någon som är haj på Exists och kan hjälpa till?

- M

@ndersMedlem sedan juni 200032 969 inlägg
#2

Varför kan du inte sortera på LogMessageDateTime om du använder IN() menar du?

GladhMedlem sedan maj 20012 812 inlägg
#3

Så fall måste LogMessageDateTime finnas med i min GroupBy vilket inte är så smart då det iprincip ger mig alla rader eftersom LogMessageDateTime nästan är unikt per rad.

Alternativt så måste det finnas med som en aggrigerade funktion i selecten, men då kan man inte använda IN eftersom IN endast kan motaga data från 1 kolumn och den kolumn som jag vill ha data ifrån är messageId.

- Magnus

@ndersMedlem sedan juni 200032 969 inlägg
#4

Aha, du menar att du ville sortera på det fältet i din subquery, det förstod jag inte. Sorry för missuppfattningen!

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