MSSQL - Query der kan give mig de 10 senest aktive tråde.

Tags:    databaser

Jeg vil gerne have de 10 senest aktive tråde sorteret efter hvornår der sidst er blevet posted.

Det er ikke et problem at få de 10 seneste posts returneret sammen med information om trådene, men der kan det sagtens være, at 3 af 10 posts er fra samme tråd og mit mål er at få 10 unikke resultater returneret.

MSSQL Query fra mit dataset.
Fold kodeboks ind/udKode 


Jeg kan lige så godt bruge en SqlConnection mv. direkte i code-behind. Men som det ser ud nu kan jeg ikke se hvordan jeg skal konstruere mit SQL query.



Indlæg senest redigeret d. 13.09.2010 16:04 af Bruger #15135
5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Det virker meget klosset..

hmm.. jeg vil tro at følgende virker:

Fold kodeboks ind/udSQL kode 


og uden at være en haj til SQL optimering så vil jeg også tro det sparer et par milisecs i det lange løb!

kan faktisk være at du kan bruge destinct i den inderste QUERY:
Fold kodeboks ind/udSQL kode 




Indlæg senest redigeret d. 14.09.2010 16:39 af Bruger #13429
Et hurtigt fix vil være at bruge group by istedet for. Du kan groupe på din ForumThreadID som jeg formoder er den du vil have unik. Hvis du gør dette behøver du heller ikke at bruge destinct.

Hvis jeg er helt væk så skriv lige hvilket punkt du gerne vil have "unikt", det gør det noget nemmere at hjælpe.



Det er præcist det jeg gerne vil have unikt, jeg har også set GROUP BY nævnt andre steder, jeg har aldrig brugt den før og synes ikke MSDN siden er så hjælpsom.



Grunden til at jeg ikke er med på hvordan og hvorledes er, at alle tutorials jeg finder benytter aggregate_functions sammen med GROUP BY. Og jeg kan ikke lige bedømme hvor jeg skal putte en ind og opnå det ønskede resultat, i mine tests ser det ud til at GROUP BY fejler. Den brokker sig over at ForumThreads.ForumCategoryID ikke er "contained" i en aggregate function eller min GROUP BY clause.



Fold kodeboks ind/udKode 


Det her virker som jeg vil have det. Hvis du kender til en bedre måde at skrive det på, kunne det være rart. Det virker lidt klodset. Men det virker da. :)



t