Hej, om någon vill ha något att klura på så varsågoda. Jag har spenderat två Cola burkar nu på detta och behöver förmodligen lite hjälp.
Jag vill plocka de 25 senaste posterna, vilket fungerar fint! Chefen har nu lagt till ytterligare en kolumn till ID nummer, vilket är ett så kallat löpnummer. Om man ändrar en post så läggs det till en ny post med samma ID nummer men Löpnummret ökar med ett, typ såhär:
Post_ID____Post_ID_Lopnr
2056----------------0
2057----------------0
2056----------------1 (Förändrad post 2056)
2058----------------0
När jag ska plocka rader så vill jag alltså ha ut dessa rader:
MySQL ="SELECT TOP 25 * FROM tblPostLista WHERE Post_ID_LopNr IN (SELECT TOP 1 Post_ID_LopNr FROM tblPostLista ORDER BY Post_ID_LopNr DESC) ORDER By Post_Datum DESC"
Ger mig bara en post, visserligen rätt, men den ska/bör ge mig 25st!
MySQL = "SELECT TOP 25 * FROM tblPostLista ORDER BY Post_DatumEgen Desc,Post_ID,Post_ID_LopNr DESC"
Får jag fram alla poster inklusive dubletter, dock sorterade rätt.
Så jag gjorde en programsnutt(ASP:VBScript) som ser till att om den redan har skrivit ut ett ID(vilket är sorterat efter löpnummer) så ska den hoppa över nästa om denne är samma som föregående. :i
Och detta löser problemet med att enbart visa ID med det senaste löpnumret, eftersom det är okej med flera poster i db:n, bara de har olika löpnummer.
Fast jag ser min databaslärare(VäxjöUniversitet) framför mig med sur min då denne har sagt att en databasstruktur som kräver programmering för att ge ett önskvärt resultat istället för att lösa detta med SQL är en dålig db. :r
Men jag löste det iallafall temporärt och kan tänka på annat i helgen! :birp
SELECT TOP 25 *
FROM tblPostLista tpl
where post_id_lopnr = (
select max (post_id_lopnr) from tblPostLista
where post_id = tpl.post_id )
ORDER BY Post_Datum DESC
271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e