Toon posts:

[SQL] Laatste 2 rijen selecteren

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Wat ik wil is het volgende: uit 5 tabellen de laatste twee rijen selecteren, dus de hoogste twee ID's (we hebben een kolomnaam ID, autonummer).

Wat wel lukt is de eerste twee rijen (ID 1 en 2) uit de tabellen halen, op deze manier (in code wel achter elkaar, maar dit is overzichtelijker):

SELECT TOP 2 * FROM tabel1 WHERE show = 1 UNION ALL
SELECT TOP 2 * FROM tabel2 WHERE show = 1 UNION ALL
SELECT TOP 2 * FROM tabel3 WHERE show = 1 UNION ALL
SELECT TOP 2 * FROM tabel4 WHERE show = 1 UNION ALL
SELECT TOP 2 * FROM tabel4 WHERE show = 1

WHERE show=1 slaat op het feit dat die gegevens dan wel zichtbaar mogen zijn op de website, andere rijen in de db niet (show=0).

Ik heb het geprobeerd door ORDER BY ID DESC tussen 1 en UNION te zetten, maar dit werkt helaas niet (ik krijg de foutmelding: Incorrect syntax near the keyword 'UNION'). Ik heb al vele topics hierover bestudeerd (en sites via google), waar het zou moeten lukken met ORDER BY, maar helaas werkt het niet bij mij.

Wie kan me helpen? (het gaat om een site met ASP.NET en SQL server).

  • momania
  • Registratie: Mei 2000
  • Laatst online: 17:50

momania

iPhone 30! Bam!

Met een UNION koppel je de queries aan elkaar en wordt het alsware 1 grote querie.
Een aangezien je met een ORDER BY maar 1 query kan orderen, kan je die dus alleen achter de laatste query van je UNION plakken

Deze ORDER BY zal dan alleen over het resultaat van alle queries gaan en leverd nog niet op wat jij wil.
Je zal het denk ik in de MAX funties moeten zoeken icm sub queries

[ Voor 30% gewijzigd door momania op 11-04-2003 14:04 ]

Neem je whisky mee, is het te weinig... *zucht*


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Maak views aan en combineer deze in je select.

SQL:
1
2
3
4
5
6
CREATE VIEW vwtable1 
AS
  SELECT TOP 2 * 
  FROM tabel1 
  WHERE show = 1 
  ORDER BY 1 DESC


SQL:
1
2
3
4
SELECT * FROM vwtable1
UNION ALL
SELECT * FROM vwtable2
-- enz

Today's subliminal thought is:


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Of natuurlijk met een subquery. :)
ie :
code:
1
select * from (select * from tabel1 union select * from tabel2)


:P

[ Voor 60% gewijzigd door dusty op 11-04-2003 14:05 ]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
thanx u all, ik ga het even proberen met views.