Toon posts:

ASP - kan een minus niet in een sql-query?

Pagina: 1
Acties:

Verwijderd

Topicstarter
K zit met een probleem,
ik heb een tabel reserveringen waar gereserveerde tennispleinen pleinen in staan
en een andere tabel pleinen waar alle tennispleinen (1-9) in staan

nu wil ik alle tennispleinen van de tabel pleinen weergeven die NIET in de tabel reserveringen staan.

vb pleinen 1-9
bij reserveringen : pleinen 6,7,8,9
wil ik enkel de pleinen 1,2,3,4 en 5 zien

nu doe ik dit bij ASP met een SQL-query:
select pleinID
from pleinen
minus
select pleinnummer
from reserveringen

dit gaat niet in ASP
wat doe ik fout, of hoe kan ik het nog doen?? thx

  • .GoO
  • Registratie: September 2001
  • Laatst online: 26-08 10:06
code:
1
2
3
4
5
select pleinID
from pleinen
where pleinID !=
(select pleinID
from reserveringen)


kan zoiets (of in die richting met een subquery) niet?

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 27-08 23:03

mOrPhie

❤️❤️❤️❤️🤍

code:
1
2
3
SELECT pleinID
FROM pleinen
WHERE pleinID NOT IN (SELECT pleinnummer FROM reserveringen)


Uitgaande dan dat PleinID en Pleinnummer van hetzelfde type zijn.

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • .GoO
  • Registratie: September 2001
  • Laatst online: 26-08 10:06
mOrPhie schreef op 03 December 2002 @ 23:08:
code:
1
2
3
SELECT pleinID
FROM pleinen
WHERE pleinID NOT IN (SELECT pleinnummer FROM reserveringen)


Uitgaande dan dat PleinID en Pleinnummer van hetzelfde type zijn.
Kon die van mij dan ook?

Verwijderd

Topicstarter
OK, bedankt allemaal... het werkt!

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 27-08 23:03

mOrPhie

❤️❤️❤️❤️🤍

devv05 schreef op 03 December 2002 @ 23:12:
[...]


Kon die van mij dan ook?
Ik heb even mijn SQL-99 boek erbij gepakt B)

Sowieso bestaat de test-comparison operator "!=" _niet_ in SQL. Hiervoor gebruiken we "<>". Maar die operator kunnen we ook niet gebruiken bij een lijst van waardes. (SELECT pleinnummer FROM reserveringen kan meer rows teruggeven). Die operators kunnen alleen "single values" checken. In dit geval gebruiken we dus "NOT IN".

Blijkt je gekozen DBMS toch "!=" te ondersteunen, dan gaat deze DBMS buiten de standaard :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


Verwijderd

Topicstarter
Nu lukt er nog iets niet
Ik wil die pleinen van die reserveringen op een bepaalde datum nemen,
waarom lukt dit niet
SELECT pleinID FROM pleinen WHERE pleinID NOT IN (SELECT pleinnummer FROM tblR where datum='5-dec-2002')

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Zal wel aan de notatie van de datum liggen.

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Topicstarter
toch niet, k heb het nagecheckt in de database

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 27-08 23:03

mOrPhie

❤️❤️❤️❤️🤍

Verwijderd schreef op 03 December 2002 @ 23:33:
Nu lukt er nog iets niet
Ik wil die pleinen van die reserveringen op een bepaalde datum nemen,
waarom lukt dit niet
SELECT pleinID FROM pleinen WHERE pleinID NOT IN (SELECT pleinnummer FROM tblR where datum='5-dec-2002')
Volgens mij moet elke DBMS de ANSI SQL-92 datum begrijpen in welke situatie ook. That is: YYYY-MM-DD. En dat is alleen als je datumveld ook daadwerkelijk een date(time)-veld is.

Maar je vragen worden steeds basic-er. Dit over de datum had je bijvoorbeeld _makkelijk_ kunnen vinden middels google. Probeer dat 'ns voor je het hier vraagt. :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


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

dusty

Celebrate Life!

Verwijderd schreef op 03 december 2002 @ 23:33:
[..]
SELECT pleinID FROM pleinen WHERE pleinID NOT IN (SELECT pleinnummer FROM tblR where datum='5-dec-2002')


Jouw query in normale taal omgezet is:

Selecteer alle pleinID's waar de pleinID niet voorkomt in de lijst van pleinen waar er een reservering is op 5 december.

Is dit wel precies wat je wil ? :+

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


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 13:52
Volgens mij is dat inderdaad wat ie wil. Hij wil een overzicht maken van alle pleinen die nog te reserveren zijn op 5 december.
Probeer anders eerst met de Query Analyzer (als het om SQL Server gaat) de query te runnen. Dan kun je ook wat makkelijker andere mogelijkheden/schrijfwijzen testen.
En wat geeft "SELECT pleinnummer FROM tblR where datum='5-dec-2002'" terug dan ?
Geeft die wel alle ID's van de gereserveerde pleinen terug ?

  • .GoO
  • Registratie: September 2001
  • Laatst online: 26-08 10:06
mOrPhie schreef op 03 december 2002 @ 23:21:
[...]


Ik heb even mijn SQL-99 boek erbij gepakt B)

Sowieso bestaat de test-comparison operator "!=" _niet_ in SQL. Hiervoor gebruiken we "<>". Maar die operator kunnen we ook niet gebruiken bij een lijst van waardes. (SELECT pleinnummer FROM reserveringen kan meer rows teruggeven). Die operators kunnen alleen "single values" checken. In dit geval gebruiken we dus "NOT IN".

Blijkt je gekozen DBMS toch "!=" te ondersteunen, dan gaat deze DBMS buiten de standaard :)
!= werkt absoluut wél B)

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 27-08 23:03

mOrPhie

❤️❤️❤️❤️🤍

devv05 schreef op 04 december 2002 @ 12:46:
[...]


!= werkt absoluut wél B)
Wellicht ter vervanging van "<>", maar absoluut niet ter vervanging van "NOT IN".

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


Verwijderd

Topicstarter
maikel schreef op 04 December 2002 @ 12:42:
Volgens mij is dat inderdaad wat ie wil. Hij wil een overzicht maken van alle pleinen die nog te reserveren zijn op 5 december.
Probeer anders eerst met de Query Analyzer (als het om SQL Server gaat) de query te runnen. Dan kun je ook wat makkelijker andere mogelijkheden/schrijfwijzen testen.
En wat geeft "SELECT pleinnummer FROM tblR where datum='5-dec-2002'" terug dan ?
Geeft die wel alle ID's van de gereserveerde pleinen terug ?
nee, doet ie ook niet, hij geeft ook foutmelding,
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/asptest/dblist.asp, line 9

k zou echt niet weten waaraan dit ligt, ik heb ook al alle datumcombinaties geprobeert, het lukt niet, in mijn (access) database staat het veld weergegeven als standaard datumnotatie

[ Voor 9% gewijzigd door Verwijderd op 04-12-2002 13:48 ]


  • Mart!
  • Registratie: Februari 2000
  • Laatst online: 23-08 14:17
There are really only a handful of date functions that you need to know in Access. The help files provide more than enough details so I will just summarize their functionality here. Access dates in code or SQL are always enclosed in pound (a.k.a. number, i.e. #) characters. These are called date literals and they represent the logical idea of a date. Access provides for a wide variety of input formats for the same date. Thus:


(#January 1 1993# = #1 Jan 1993#) = True
(#1 Jan 1993# = #1/1/1993#) = True
(#1/1/1993# = #1-1-1993#) = True

http://accesshelp.net/survival/eternity.asp

Wellicht een oplossing om dus ## te gebruiken?

Verwijderd

str = "select blabla from bla where datum = #" & format(datum, "mm/dd/yyyy") & "#"
Pagina: 1