Har en database som jag har en massa gästboksinlägg i. För att få de 30 senaste: Det jag menar är att de personer som inte finns med i top30listan ska ha sitt senaste inlägg inkluderade efter top30 listan Nu har jag skrivit ur huvudet utan att testa, så det är rätt stor risk att det är fel. Om du inte får ordning på det kan du ju ladda upp databasen så att jag har något att testa på... Jag antar att med räknare så menar du den unika nyckeln för varje post. Ja, med räknare menar jag nyckelkolumnen, glömde skriva det... SELECT * FROM gbook WHERE IDMsg IN ( Jag tror det är denna SQL sats du söker: Du borde få ett ganska beskrivande felmeddelande om du kör frågan i Access. Ange det här så blir det betydligt enklare! Det bästa vore om du ger tillgång till databasen så att man kan testa själv. Vad är det som inte fungerar? Ger det ett felmeddelande? Eller får du inte resultatet du önskar? Det hjälper om du beskriver tabellerna med alla fältnamn och deras relationer. Fick felmedelande att "sub statement is not leagal" när jag bytte till Andreas H. rad Har testat att skapa en databas. Fått frågan att fungera nu:Ett SQL statement för en gästbookdatabas
Nu vill jag ha en SQLstatment som ger mig dom 30senaste inläggen men också det senaste inläggen från varje person förutsatt att dom inte finns med i dom 30senaste inläggen ovan. Är det möjligt att göra? SELECT TOP 30... ger mig dom 30 förstamen hur löser jag resten?Sv: Ett SQL statement för en gästbookdatabas
SELECT TOP 30 * FROM gbook ORDER BY datum DESC
"det senaste inläggen från varje person förutsatt att dom inte finns med i dom 30senaste inläggen ovan"
Menar du att alla personer som inte är med i Top30 ska visas eller menar du att inlägg som finns med på Top30 ska igoneras, om en användare har inlägg på top30 så ska det näst senaste visas alltså?
/JohanSv: Ett SQL statement för en gästbookdatabas
typ I gästboken finns lars,nisse,stina,mirre,august,lotta men det är bara nisse,lars,mirre och bert som har skrivit bland dom 30senaste inläggen. Då vill jag att dom andra (som inte är med bland dom 30första) senaste inlägg ska hakas på efter dom 30 andra meddelanden.
1 Nisse
2 Lars
..
29 Mirre
30 Lars
31 Stina
32 August
33 LottaSv: Ett SQL statement för en gästbookdatabas
SELECT * FROM gbook WHERE Räknare IN (
SELECT MAX(Räknare) AS Räknare FROM gbook
GROUP BY Namn
HAVING Namn NOT IN(
SELECT DISTINCT Namn FROM (SELECT TOP 30 Namn FROM gbook ORDER BY datum DESC)))
/JohanSv: Ett SQL statement för en gästbookdatabas
Jag testar detta i natt när jag kommer hem
men måste det inte vara en join på top30 och det du skrev?
Kolumner:
IDmsg <-Nyckel
Datum
Tid
Namn
MsgSv: Ett SQL statement för en gästbookdatabas
Inte Join, men en Union om du vill ha ut allt på en gång...
/JohanSv: Ett SQL statement för en gästbookdatabas
SELECT MAX(IDMsg) AS IDMsg FROM gbook
GROUP BY Namn
HAVING Namn NOT IN(
SELECT DISTINCT Namn FROM (SELECT TOP 30 Namn FROM gbook ORDER BY datum DESC)) UNION (SELECT TOP 30 FROM Namn FROM gbook ORDER BY datum DESC))
?Sv: Ett SQL statement för en gästbookdatabas
SELECT *
FROM gbook
WHERE IDMsg IN (SELECT MAX(IDMsg) AS IDMsg FROM gbook GROUP BY Namn) OR IDMsg IN (SELECT TOP 30 IDMsg FROM Namn FROM gbook ORDER BY datum DESC)Sv: Ett SQL statement för en gästbookdatabas
/JohanSv: Ett SQL statement för en gästbookdatabas
Sv: Ett SQL statement för en gästbookdatabas
När jag kommer hem kopierar jag hela felmsg och skriver ut den här Sv: Ett SQL statement för en gästbookdatabas
SELECT Main.*
FROM gbook AS Main
WHERE Main.IDMsg IN (SELECT MAX(Sub.IDMsg) FROM gbook As Sub GROUP BY Namn) OR Main.IDMsg IN (SELECT TOP 30 Sub.IDMsg FROM gbook AS Sub ORDER BY Sub.Datum DESC)