Archief - SQL probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

kney

Legacy Member
De bedoeling is om dit te tonen:

- Voornaam, Achternaam hoofdverzekerde (1)
- Voornaam, Achternaam medeverzekerde (2)
- Geboortedatum medeverzekerde

De geboortedatum van de medeverzekerden moet tussen 01-01-1995 en 31-12-1995 liggen

Verzekeringen
-------------
VerzekeringID Voornaam Achternaam Geboortedatum Hoofdverzekerde
1 Tim Daems 08/12/1963 1
2 Wim Daems 05/06/1995 2
3 Koen Daems 08/11/1988 2
4 Tom Waes 18/01/1965 1
5 Ken Verwaest 25/10/1956 1
6 Ben Verwaest 29/06/1995 2

<b>Dit moet het resultaat van de query zijn</b>

Tim Daems Wim Daems 05/06/1995
Ken Verwaes Ben Verwaest 29/06/1995

<b>Ik heb voorlopig deze query:</b>

SELECT Voornaam, Achternaam, Geboortedatum
FROM verzekeringen
WHERE Geboortedatum BETWEEN '01-01-1995' AND '31-12-1995'

Hier moet nog ergens een subquery in om de hoofdverzekerde te tonen.

Recipe4hate

Legacy Member
Ik snap eigenlijk niet hoe de tabel is opgebouwd.
Waarnaar verwijst het nummer van 'hoofdverzekerde'?

Recipe4hate

Legacy Member
Dus als ik het goed begrijp, staat er voor zowat ieder record een 1 of een 2 in die tabel?
Hoe wil je dan gaan bepalen welke hoofd-of mede verzekerde in welke selectie valt? Op basis van Achternaam?

kney

Legacy Member
Ja in iedere record staat 1 of 2.
En ik weet niet hoe ik dat kan bepalen

Recipe4hate

Legacy Member
Ik zou die tabel gaan opsplitsen.
Lijkt mij best om volgende te doen:
Tabel Persoon(voornaam, achternaam, geboortedatum, + ID!)
Tabel Verzekering (Verzekering ID, Hoofdverzekerde foreign key, Medeverzekerde foreign key, + eventueel extra gegevens)

Op deze manier kan je dan met table joins gaan werken...
Hoe dat de tabel er bij jou nu uitziet, zou ik er niet aan beginnen. Er zijn teveel factoren die je query om zeep kunnen helpen :)

woony

Legacy Member
Uw tabelstructuur is niet zozeer fout voor wat je wilt bereiken, de invulling echter wel.
Als je uw 'hoofdverzekerde' kolom aanziet als een 'parent'-kolom, en daar dus de id bij houdt van de hoofdverzekerde , gaat het om ene record van een hoofdverzekerde laat je die leeg, of steek je er zijn eigen id in.

dan wordt je tabel als volgt.
VerzekeringID Voornaam Achternaam Geboortedatum Hoofdverzekerde
1 Tim Daems 08/12/1963 1
2 Wim Daems 05/06/1995 1
3 Koen Daems 08/11/1988 1
4 Tom Waes 18/01/1965 4
5 Ken Verwaest 25/10/1956 5
6 Ben Verwaest 29/06/1995 5

of
VerzekeringID Voornaam Achternaam Geboortedatum Hoofdverzekerde
1 Tim Daems 08/12/1963
2 Wim Daems 05/06/1995 1
3 Koen Daems 08/11/1988 1
4 Tom Waes 18/01/1965
5 Ken Verwaest 25/10/1956
6 Ben Verwaest 29/06/1995 5

Dit zou je wel verder op weg moeten helpen. De query om dit nu te tonen hoeft niet zo moeilijk te zijn, ik laat dit nog even aan uzelf over :)

kney

Legacy Member
Thanks voor me wat op weg te helpen.
Het probleem is nu opgelost....
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan