Toon posts:

[ASP] Meerdere tabellen, verschillende "TOP x" Statements

Pagina: 1
Acties:

Verwijderd

Topicstarter
ASP:
1
2
3
4
5
6
7
8
9
10
11
SQL = "SELECT TOP 5 
                    tbl_1.id AS Tabel-een.id, 
                    tbl_1.naam AS Tabel-een.naam, 
                    tbl_1.datum AS Tabel-een.datum,  
                        From tbl_1 Order by tbl_1.ID DESC,
                        
              TOP 1 tbl_2.id AS Tabel-twee_ID, 
                  tbl_2.tijd AS Tabel-twee_tijd, 
                  tbl_2.text AS Tabel-twee_text, 
                  tbl_2.datum AS Tabel-twee_datum,  
                      From tbl_2 Order by tbl_2.ID DESC;"


Wat doe ik fout?? Tuurlijk staat de SQL string aan elkaar, maar ik heb het zo gezet dat het iets overzichtelijker is...

Fout:
ASP:
1
2
3
4
5
6
Microsoft JET Database Engine error '80040e14' 

The SELECT statement includes a reserved word or an argument 
name that is misspelled or missing, or the punctuation is incorrect. 

/blaat.asp, line 25 


Ik hoop dat iemand mij kan helpen!

[ Voor 25% gewijzigd door Verwijderd op 12-01-2003 17:08 ]


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
'k Zou een union gebruiken. :)

Verwijderd

Topicstarter
Gert schreef op 12 January 2003 @ 17:00:
'k Zou een union gebruiken. :)
Sorry?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Zie Books Online, typ "union" en zie de uitleg aldaar ;)

日本!🎌


Verwijderd

Topicstarter
Hebben jullie niet iets van een voorbeeld hoe ik dit kan aanpakken?

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
code:
1
2
3
4
5
6
SELECT TOP 5 zus, broer AS hmm
FROM zo
UNION
SELECT TOP 1 dit, dat AS hmm
FROM dittem
ORDER BY hmm DESC;


Mochten ze nou niet gerelateerd zijn en dus niet mogen mixen (wat raar is als 't in 1 query staat ;)) dan kan je bijvoorbeeld bij de eerste 1 AS volgorde, bij de 2e 2 AS volgorde en dan ORDER BY volgorde.
Datatypen en aantal velden moeten kloppen in aantal en volgorde.

[ Voor 3% gewijzigd door Gert op 12-01-2003 17:15 . Reden: ik ben dom ]


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Zelf wat onderzoek verrichten kan echt geen kwaad hoor, daar leer tenminste wat van... maargoed, here goes:
code:
1
2
3
4
5
6
7
SELECT TOP 5 
   id, naam, datum
FROM tbl_1 ORDER BY id DESC
UNION ALL
SELECT TOP 1
   id, tijd, text, datum
FROM tbl_2 ORDER BY id DESC

(is NIET getest, komt uit blote hoofd)

edit: damn, net te laat :)

[ Voor 5% gewijzigd door _Thanatos_ op 12-01-2003 17:19 . Reden: te laat ]

日本!🎌


Verwijderd

Topicstarter
Héél erg bedankt!

Ik geef toe, het blijkt nu dat ik niet te goed heb gezocht. Toch heel erg bedankt voor de moeite!

Verwijderd

Topicstarter
Dat UNION Werkt dus niet :) Hij zegt dat het aantal kolomen gelijk moet zijn aan de geselecteerde tabellen...............

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:06

gorgi_19

Kruimeltjes zijn weer op :9

Je hebt 2 compleet verschillende queries met 2 compleet verschillende kolomnamen en aantallen, die je wilt combineren. Dit kan dus niet.

Als je union wilt gebruiken, plakt hij de 'resultaten' onder elkaar. en doet het net of het 1 resultset is.

Oplossing: zorg dat je kolomaantallen gelijk zijn, desnoods door dummyresultaten in je SQL statement.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ik heb al een andere oplossing: Gewoon 2 connecties maken, maar dat vindt ik een beetje zonde van de snelheid etc.
Pagina: 1