Vill ha ut top 10 från accessdatabas. Vill visa de 10 senast uppdaterade men högst en per kategori. Alltså om vi har en kategori som heter katter (med massor med rader) så vill jag bara ha ut en av dessa rader och sedan 9 andra rader från övriga kategorier sorterat på tiden...
Databasen ser ut så här:
id | category | last_updated_time | last_updated_date | etc...
Det jag inte förstår är hur man exkluderar så att vi bara får en träff per kategori.
select top 10 * from
(select * from categories c
where dateColumn in
(select max(dateColumn) from categories
where categoryid = c.categoryid ))
order by dateColumn desc
en vanlig TOP 10 fråga vet jag hur man gör men jag vill att den ska ta hänsyn till att det enbart får finnas en träff per kategori även om en kategori har fler nya datum än en annan...
Varför har du delat upp last_updated_date och last_updated_time i två kolumner?
sql = "select top 10 * from " & _
" (select * from T_picture_stats c where id in " & _
" (select top 1 id from T_picture_stats " & _
" where picture_kategori = c.picture_kategori " & _
" order by last_updated_date desc, last_updated_time desc,id))" & _
" order by last_updated_date desc, last_updated_time desc,id "
jag har inte någon anledning... ha ha .... hmmm... det känndes bra för tillfället att använda två columner... sorry!
Jag böjer mig på mina bara knän. Din fråga är perfekt. Resultatet är som jag vill ha det.
Något strular dock för det tar ca tre sekunder innan sidan kommer upp. Jag har 91 kategorier och 1000 bilder fördelat i dessa. Är det en mer krävande fråga än de vanliga select a b c frågorna jag använder på samma sida?