[SQL] Hulp bij query over datum

Pagina: 1
Acties:

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
Het is een korte vraag en ik kan er ook niet meer van maken. Is het mogelijk om met behulp van een query datums uit een tabel te halen die er niet zijn.

Ik heb een tabel met inschrijvingen en die hebben allemaal een inschrijfdatum. Nu wil ik dus met behulp van een query alle datums waarop zich GEEN inschrijvingen hebben voorgedaan. Is dit uberhaupt mogelijk?

"He who thinks knows evertyhing, knows nothing" - Socrates


Verwijderd

MarkTheFOX schreef op 23 June 2003 @ 22:41:
Is het mogelijk om met behulp van een query datums uit een tabel te halen die er niet zijn.
Lijkt me niet. 8)7

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
MarkTheFOX schreef op 23 June 2003 @ 22:41:
Het is een korte vraag en ik kan er ook niet meer van maken. Is het mogelijk om met behulp van een query datums uit een tabel te halen die er niet zijn.

Ik heb een tabel met inschrijvingen en die hebben allemaal een inschrijfdatum. Nu wil ik dus met behulp van een query alle datums waarop zich GEEN inschrijvingen hebben voorgedaan. Is dit uberhaupt mogelijk?
Ik denk dat het type database ook belangrijk is, maar met MySQL kan het voor zover ik weet niet :(

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
In MS SQL:
code:
1
2
SELECT getdate()
SELECT dateadd(d, 1, getdate())

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
MarkTheFOX schreef op 23 June 2003 @ 22:41:
Ik heb een tabel met inschrijvingen en die hebben allemaal een inschrijfdatum. Nu wil ik dus met behulp van een query alle datums waarop zich GEEN inschrijvingen hebben voorgedaan. Is dit uberhaupt mogelijk?
Als je een tabel hebt met daarin alle datums waarop er inschrijvingen mogelijk zijn, dan is het mogelijk ja.

https://fgheysels.github.io/


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Maar wat heb je al geprobeerd?

Want misschien moet je het niet met SQL, maar met je taal oplossen (als je die hebt :))

[ Voor 61% gewijzigd door Jaspertje op 23-06-2003 22:50 ]


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 01:27

pietje63

RTFM

Misschien een idee om alle data ergens in te zetten (tabel/array) en dan de gebruikte er uit te vissen, dan blijven de ongebruikte over

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
Het is voor een opdracht voor school. Ik heb 6 query's moet schrijven in pure SQL waarmee ik bepaalde gegevens ophaal. Een van die opdrachten (degene waar ik dus niet uitkom) is dus om de datums te geven waarop zich geen klanten hebben ingeschreven. Dit moet dus met behulp van een SELECT query. Om de query's te testen heb ik even snel een Access database in elkaar gezet. Ik zat me dus af te vragen of er ook een soort functie was om alle dagen van het jaar te krijgen en dan de dagen waarop er zich wel klanten hebben ingeschreven daarvan af te halen, zodat je een lijst overhoudt met datums waarop zich geen klanten hebben overgehouden.

En whoami, bedankt voor het meedenken, maar in Access krijg ik de foutmelding dat de functie een ongedefineerde functie getdate bevat.

"He who thinks knows evertyhing, knows nothing" - Socrates


  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024

*Dutch-Force*

Civic CX

heb je het al geprobeerd met de functie NOT EXISTS

ComputerSpecs


  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
pietje63 schreef op 23 juni 2003 @ 22:54:
Misschien een idee om alle data ergens in te zetten (tabel/array) en dan de gebruikte er uit te vissen, dan blijven de ongebruikte over
Dat is dus niet de bedoeling. Ik moet dus gebruik maken van een bestaande database waar ik verder niets aan mag veranderen. Belangstellenden kan ik het databasemodel wel ff mailen.

"He who thinks knows evertyhing, knows nothing" - Socrates


Verwijderd

whoami schreef op 23 June 2003 @ 22:49:
[...]


Als je een tabel hebt met daarin alle datums waarop er inschrijvingen mogelijk zijn, dan is het mogelijk ja.
Volgens mij is dat de enige manier ja.

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
Verwijderd schreef op 23 juni 2003 @ 23:09:
[...]

Volgens mij is dat de enige manier ja.
Hmmm, leuk is dat zo'n opdracht van school. Het is dus niet mogelijk dat je in SQL alle mogelijke datum combinaties kan nemen en daar degene van afhaalt die in de tabel staan, zodat je een lijst over houdt met datums die niet in de tabel voorkomen?

"He who thinks knows evertyhing, knows nothing" - Socrates


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

In principe kan je alleen maar dingen selecteren die bestaan, niet die niet bestaan.
Je zou met zoiets wellicht nog wel de datum-ranges kunnen verkrijgen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
acm=# select * from datumtabel ;
 datumveld
------------
 2003-06-23
 2003-06-20
 2003-06-18
(3 rows)

acm=# select a.datumveld, b.datumveld
acm-# from
acm-#  datumtabel a,
acm-#  datumtabel b
acm-# where
acm-#  b.datumveld = (select
acm(#           min(c.datumveld) from datumtabel c where c.datumveld > a.datumveld);
 datumveld  | datumveld
------------+------------
 2003-06-20 | 2003-06-23
 2003-06-18 | 2003-06-20
(2 rows)

acm=# \d datumtabel
  Table "public.datumtabel"
  Column   | Type | Modifiers
-----------+------+-----------
 datumveld | date |


Als je docent dus daadwerkelijk in mijn voorbeeld dan:
2003-06-19, 2003-06-21, 2003-06-22 als resultaten had willen zien wil ik wel eens weten hoe ie dat voor elkaar wenst te krijgen ;)

[ Voor 55% gewijzigd door ACM op 23-06-2003 23:29 ]


Verwijderd

Volgens mij is het heel moelijk, zo niet onmogelijk om data te selecteren uit een database die die er niet in zit. Want daar lijkt je vraag op. Welke data moet hij teruggeven? Gaat het om alle data in één jaar waarop geen inschrijvingen zijn geweest, of meerdere jaren, of 'alle combinaties' (oneindig veel dus)

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
ACM schreef op 23 June 2003 @ 23:23:
In principe kan je alleen maar dingen selecteren die bestaan, niet die niet bestaan.
Je zou met zoiets wellicht nog wel de datum-ranges kunnen verkrijgen:

code:
1
2
3
4
5
6
select a.datumveld, b.datumveld 
from 
 tabel a, 
 tabel b
where 
 b.datumveld = (select min(c.datumveld) from tabel c where c.datumveld > a.datumveld)
Als ik je goed begrijp heb je hier dus een hulptabel voor nodig en dit mag niet (bij nader inzien toch niet).
In ieder geval bedankt voor het meedenken. Ik denk dat ik het maar gewoon inlever. 5 van de 6 query's goed is nog altijd voldoende. Zeg ik er meteen bij dat naar mijn idee deze query echt helemaal nergens op slaat.
Ga nu slapen. Lang genoeg mee gezeten.

Hmmm, nog een edit. Misschien kan ik die ranges nog wel gebruiken. Moet ie daar maar genoegen meenemen. Bedankt!

[ Voor 10% gewijzigd door Vozze op 23-06-2003 23:33 ]

"He who thinks knows evertyhing, knows nothing" - Socrates


  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
Verwijderd schreef op 23 June 2003 @ 23:23:
Volgens mij is het heel moelijk, zo niet onmogelijk om data te selecteren uit een database die die er niet in zit. Want daar lijkt je vraag op. Welke data moet hij teruggeven? Gaat het om alle data in één jaar waarop geen inschrijvingen zijn geweest, of meerdere jaren, of 'alle combinaties' (oneindig veel dus)
Met die vragen zit ik dus ook allemaal. Denk precies hetzelfde. Heb die docent al gemaild of die vraag wel goed is, maar krijg geen mail terug. Het is wel goed zo. Krijg er koppijn van en als je koppijn krijgt van schoolwerk, dan is het de hoogste tijd om te gaan slapen. :z

"He who thinks knows evertyhing, knows nothing" - Socrates


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

MarkTheFOX schreef op 23 June 2003 @ 23:27:
Als ik je goed begrijp heb je hier dus een hulptabel voor nodig en dit mag niet.
In ieder geval bedankt voor het meedenken. Ik denk dat ik het maar gewoon inlever. 5 van de 6 query's goed is nog altijd voldoende. Zeg ik er meteen bij dat naar mijn idee deze query echt helemaal nergens op slaat.
Ga nu slapen. Lang genoeg mee gezeten.
Neehoor, mijn query kan je gewoon op je eigen tabel loslaten.

Maar ik liet alleen even de structuur zien van de tabel die ik gebruikte :)

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
ACM schreef op 23 June 2003 @ 23:30:
[...]

Neehoor, mijn query kan je gewoon op je eigen tabel loslaten.

Maar ik liet alleen even de structuur zien van de tabel die ik gebruikte :)
Klopt, zie het nu ook. Dit kan ik nog ff proberen. Bedankt. Moet ie maar genoegen nemen met die ranges.

"He who thinks knows evertyhing, knows nothing" - Socrates


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

MarkTheFOX schreef op 23 June 2003 @ 23:34:
Klopt, zie het nu ook. Dit kan ik nog ff proberen. Bedankt. Moet ie maar genoegen nemen met die ranges.
Hou ons op de hoogte, want met mij zijn er vast een heleboel benieuwd naar hoe ie het in gedachten had :)

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
ACM schreef op 23 June 2003 @ 23:35:
[...]

Hou ons op de hoogte, want met mij zijn er vast een heleboel benieuwd naar hoe ie het in gedachten had :)
Zal ik doen. Ga in ieder geval jouw oplossing gebruiken. Dat is er namelijk 1 waarmee ik tevreden ben. Nogmaal bedankt!

"He who thinks knows evertyhing, knows nothing" - Socrates


Verwijderd

Hou ons op de hoogte, want met mij zijn er vast een heleboel benieuwd naar hoe ie het in gedachten had
Dat kan je wel zeggen, ik had laatst namelijk hetzelfde probleem en dat heb ik opgelost mbv een tabel. Zie ook Topic 769671

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
MarkTheFOX schreef op 23 June 2003 @ 22:57:
En whoami, bedankt voor het meedenken, maar in Access krijg ik de foutmelding dat de functie een ongedefineerde functie getdate bevat.
Ik had het dan ook op MS SQL Server ;)

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

In Access heet het, afaik, now()

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

[quote]
In Access heet het, afaik, now()
[/quote

In Access heet dat Date() anders krijg je de tijd er gratis bij ;)
Pagina: 1