Hej Kolla om detta kan fungera Det enklaste måste väl vara: Fungerar kanon utan order by, får: Incorrect syntax near the keyword 'ORDER' Testa med Hmm, får detta: ORDER BY items must appear in the select list if the statement contains a UNION operator. Vet inte om det kan ha med saken att göra, men testa också med Hur var det, ville du ha 10 bilar av a först sorterat med datum och id, sedan bilar av b sorterat på samma sätt och sist 10 bilar av c? testat detta också ... fortfarande de äldsta datumen först Nu tror jag det funkar. Gjorde så här:SQL-Fråga x antal av bilmärke A x antal av B?
Har en databas Ms sql 2000 med olika artiklar som är kopplade till ett bilmärke.
Har en sida som listar:
SELECT top 30 * from ARTIKLAR WHERE BILMARKE=A OR BILMARKE=B OR BILMARKE=C ORDER BY DATUM DESC, ID ASC
Vad jag skulle vilja ha hjälp med är en sqlfråga som listar t ex de 10 första med bilmarke A, sen kommer ytterligare 10 med bilmarke B, sen 10 med bilmarke C
men ändå sorterat med datum och id
Går detta att få fram i sql-frågan?
Tack på förhandSv: SQL-Fråga x antal av bilmärke A x antal av B?
<code>
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=A ORDER BY DATUM DESC, ID ASC)
UNION ALL
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=B ORDER BY DATUM DESC, ID ASC)
UNION ALL
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=C ORDER BY DATUM DESC, ID ASC)
ORDER BY DATUM DESC, ID ASC
</code>
Eventuellt måste du istället för * ange vilka fält du ska ha med.Sv: SQL-Fråga x antal av bilmärke A x antal av B?
(SELECT TOP 10 FROM Artiklar WHERE Bilmarke = "A" ORDER BY Date)
UNION ALL
(SELECT TOP 10 FROM Artiklar WHERE Bilmarke = "B" ORDER BY Date)
UNION ALL
(SELECT TOP 10 FROM Artiklar WHERE Bilmarke = "C" ORDER BY Date)
Edit: 2 minuter sen =)Sv:SQL-Fråga x antal av bilmärke A x antal av B?
som det är nu så listar den helt tvärtom äldsta datum sistSv: SQL-Fråga x antal av bilmärke A x antal av B?
<code>
SELECT * FROM (
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=A ORDER BY DATUM DESC, ID ASC)
UNION ALL
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=B ORDER BY DATUM DESC, ID ASC)
UNION ALL
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=C ORDER BY DATUM DESC, ID ASC)
) AS bilar
ORDER BY DATUM DESC, ID
</code>Sv:SQL-Fråga x antal av bilmärke A x antal av B?
Tar jag bort order by i båda selectsatserna:
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=B tar bort dessa --> ORDER BY DATUM DESC, ID ASC)
då listas alla artiklar men fel datumordning ... kanske detta inte går?Sv: SQL-Fråga x antal av bilmärke A x antal av B?
<code>
SELECT * FROM (
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=A ORDER BY DATUM DESC, ID ASC)
UNION ALL
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=B ORDER BY DATUM DESC, ID ASC)
UNION ALL
(SELECT TOP 10 * FROM ARTIKLAR WHERE BILMARKE=C ORDER BY DATUM DESC, ID ASC)
) AS bilar
ORDER BY bilar.DATUM DESC, bilar.ID
</code>Sv: SQL-Fråga x antal av bilmärke A x antal av B?
Ta i så fall bort den sista order by.Sv:SQL-Fråga x antal av bilmärke A x antal av B?
Sv:SQL-Fråga x antal av bilmärke A x antal av B?
sSql2 = sSql2 & " SELECT top 20 DATUM,ID,RUBRIK,INGRESS FROM ( "
sSql2 = sSql2 & " (SELECT DATUM,ID,RUBRIK,INGRESS FROM ARTIKLAR WHERE BILMARKE='a' ) "
sSql2 = sSql2 & " UNION ALL "
sSql2 = sSql2 & " (SELECT DATUM,ID,RUBRIK,INGRESS FROM ARTIKLAR WHERE BILMARKE='b') "
sSql2 = sSql2 & ") as bilar "
sSql2 = sSql2 & " ORDER BY bilar.Datum desc, bilar.ID asc"
TACK alla för hjälpen!