Toon posts:

[MySql] eerst volgende tijd vanaf nu

Pagina: 1
Acties:

Verwijderd

Topicstarter
Kan iemand mij helpen met het volgende:

Ik heb 2 tabellen:

Leerlingen

Id
Naam
enz.

EN

Lessen

Id
LeerlingId
BeginTijd
enz.

Nu wil ik doormiddel van een query alle eerst volgende lessen bepalen waarbij de leerling wel verschillend moet zijn.

Dus bv (het is nu 18:00).

Les 1 met leerling 1 begint om 18:05
Les 2 met leerling 2 begint om 18:10
Les 3 met leerling 1 begint om 19:15

Dan moet het resultaat moet dus alleen les 1 en 2 zijn.

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

fout gelezen :|

[ Voor 85% gewijzigd door GX op 27-02-2004 13:59 . Reden: |:( ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wil je voor elke leerling in tabel leerlingen het eerste resultaat uit tabel lessen?

;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 05-04-2025

[ash]

Cookies :9

Ik denk dat LIMIT jouw vriend is ;) zie http://www.mysql.com/doc/en/SELECT.html voor meer info.

Verwijderd

Topicstarter
BtM909 schreef op 27 februari 2004 @ 13:58:
Wil je voor elke leerling in tabel leerlingen het eerste resultaat uit tabel lessen?

;)
JA! eerst volgende tijd dus...

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Je wilt dus per leerling de eerstvolgende les. Da's nog korter :+

LIMIT gaat het niet mee lukken, want LIMIT is 'statisch', je kunt daarmee geen resultaten uit de query zelf gebruiken.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
[ash] schreef op 27 februari 2004 @ 13:58:
Ik denk dat LIMIT jouw vriend is ;) zie http://www.mysql.com/doc/en/SELECT.html voor meer info.
Maar dan krijg ik toch maar 1 record?
Ik wil als er 100 leerlingen zijn van 100 leerlingen de eerst volgende les zien.

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Wat heb je zelf al geprobeerd / bedacht?

There's no place like 127.0.0.1


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik heb weinig verstand van MySQL, in SQL Server zou je het als volgt kunnen doen. Dit moet toch ook wel mogelijk zijn met MySQL??

code:
1
2
3
4
5
SELECT Leerling, 
     (SELECT TOP 1 Les FROM Lessen 
      WHERE LeerlingId = L.LeerlingId 
      AND BeginTijd> Getdate() ORDER BY BeginTijd)Les 
FROM Leerling L


en ja ik weet dat dit niet werkt als er alleen een tijd ingevuld is, ik ga er voor het gemak even vanuit dat 'BeginTijd' een Datum + tijd veld is. Er is wel een oplossing voor maar het gaat even om het idee.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
MatHack schreef op 27 februari 2004 @ 14:06:
Wat heb je zelf al geprobeerd / bedacht?
code:
1
2
3
SELECT DISTINCT  les.*, leer.Naam 
FROM Lessen AS les, Leerling AS leer 
WHERE (les.BeginTijd > CAST( '18:00' AS TIME ))


Maar dat werkt dus iig niet :'(

Verwijderd

Verwijderd schreef op 27 februari 2004 @ 14:10:
[...]


code:
1
2
3
SELECT DISTINCT  les.*, leer.Naam 
FROM Lessen AS les, Leerling AS leer 
WHERE (les.BeginTijd > CAST( '18:00' AS TIME ))


Maar dat werkt dus iig niet :'(
Nope, dat klopt... Je moet sowieso de leerling tabel nog aan de lestabel koppelen in je WHERE clause...

Die DISTINCT geeft nu niet het gewenste resultaat omdat records als leerling1, les1 en leerling1, les2 als 2 verschillende records worden gezien...

Volgens mij werkt 't wel als je een van een leerling (groeperen op) de les met de laagste tijd (vanaf de huidige tijd) neemt...

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Volgens mij moet het als volgt wel werken:

inner join student met lesson
groepeer op studentId
sorteer ascending op time

edit:
Ik heb ook een beetje mijn twijfels over je database ontwerp, trouwens? Waar is het voor? Voor 1-op-1 lessen neem ik aan? Iets van een rijinstructeur ofzo?

edit:
@[ash]

Ja, MIN() moet je natuurlijk hebben |:( * drm gaat meer weer wat anders doen dan domme tips geven O-)

[ Voor 59% gewijzigd door drm op 27-02-2004 14:23 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 05-04-2025

[ash]

Cookies :9

Ik begreep het niet helemaal, LIMIT is hiet idd niet je vriend :/

Misschien werkt dit ?

code:
1
2
3
4
5
SELECT leer.Naam, MIN(les.BeginTijd)
FROM Lessen AS les
INNER JOIN Leerling AS leer on leer.Id=les.LeerlingId 
WHERE (les.BeginTijd > CAST ( '18:00' AS TIME))
GROUP BY leer.Naam

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
[ash] schreef op 27 februari 2004 @ 14:21:
Ik begreep het niet helemaal, LIMIT is hiet idd niet je vriend :/

Misschien werkt dit ?

code:
1
2
3
4
5
SELECT leer.Naam, MIN(les.BeginTijd)
FROM Lessen AS les
INNER JOIN Leerling AS leer on leer.Id=les.LeerlingId 
WHERE (les.BeginTijd > CAST ( '18:00' AS TIME))
GROUP BY leer.Naam
Zal wel werken, maar dan krijg je alleen de tijd, niet eventuele overige lesgegevens.

Oops! Google Chrome could not find www.rijks%20museum.nl


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

Annie

amateur megalomaan

P_de_B schreef op 27 februari 2004 @ 14:24:
[...]


Zal wel werken, maar dan krijg je alleen de tijd, niet eventuele overige lesgegevens.
Oh, geen punt, bij mysql mag je gewoon non-aggregate gegevens opnemen in de query ook al groepeer je daar niet op. Of je dan terugkrijgt wat je ook nodig hebt is een tweede :D

Today's subliminal thought is:


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Als de tijd uniek is, kan dat toch geen problemen opleveren?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
drm schreef op 27 februari 2004 @ 17:11:
Als de tijd uniek is, kan dat toch geen problemen opleveren?
Als je dan de omschrijving van de les ook nodig hebt?
Oh, geen punt, bij mysql mag je gewoon non-aggregate gegevens opnemen in de query ook al groepeer je daar niet op.
huh? dat mag dan wel bij ACM's lijstje op...

[ Voor 30% gewijzigd door P_de_B op 27-02-2004 20:42 ]

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1