Geachte PHP hulpers,

Ik zit hier met een database die als volgt is opgebouwd:

Persoon - Eigenschap1 - Eigenschap2 - Type - Leeftijd
Persoon A - E1 - E2 - Type 1 - L
Persoon A - E1 - E2 - Type 2 - L
Persoon A - E1 - E2 - Type 3 - L
Persoon B - E1 - E2 - Type 1 - L
Persoon B - E1 - E2 - Type 1 - L
Persoon B - E1 - E2 - Type 1 - L
etc

Nu zou ik de database graag zou indelen dat elke persoon een rij krijgt en elke kolom een type.

Ik heb een nieuwe tabel gemaakt met de opbouw die ik wil en met mijn gebrekkige SQL kennis zat ik aan het volgende te denken om de gegevens uit de oude tabel naar de nieuwe te krijgen:

UPDATE nieuwetabel INNER JOIN oudetabel ON nieuwetabel.persoon = oudetabel.persoon AND nieuwetabel.eigenschap1 = oudetabel.eigenschap AND nieuwetabel.eigenschap2 = oudetabel.eigenschap2 SET nieuwetabel.[oudetabel.type].oudetabel.leeftijd

Het probleem zit hem in het laatste deel "SET nieuwetabel.[oudetabel.type].oudetabel.leeftijd". Ik wil dus dat hij de leeftijd invoert in de kolom van het type van de persoon. Weet iemand hoe ik MS access ervan kan overtuigen om dit te doen?

Bij voorbaat dank!
Niet via deze weg doen, Killalot. (van robotwars gezien zeker?? :P) Je tabel is niet goed opgebouwd.
Je hebt eigenschap1 en eigenschap2 als kolommen, maar wat nu als ik maar 1 eigenschap heb (nog niet zo'n groot probleem, maar je krijgt wel overhead) of als ik er juist meerdere heb?
Eigenschappen horen eigenlijk in een apparte tabel (misschien heb je dat al) en je voegt een koppeltabel in voor de eigenschappen bij personen.
Door op deze manier te werken, wordt je database generieker voor de toekomst, gemakkelijker aanpasbaar (voeg gemakkelijk een nieuwe eigenschap toe)


Voor wat je vraag betreft:
"SET nieuwetabel.type = oudetabel.leeftijd

Zoiets moet volgens mij beter gaan!
Bedankt voor je reactie. Het zijn overigens niet echt personen maar dat heb ik maar even gebruikt als voorbeeld. Het gaat er om dat elke unieke combinatie van persoon, eigenschap1 en eigenschap2 een eigen rij krijgt. De opbouw van de tabel kan ik overigens niet beinvloeden omdat die extern aangeleverd wordt.

Als ik SET nieuwetabel.type = oudetabel.leeftijd gebruik werkt het niet omdat nieuwetabel.type geen kolom is. Ik heb in de nieuwe tabel alleen de kolommen type1, type2 en type3. Het probleem is dus dat de waarden in de juiste kolom geplaatst moeten worden en welke kolom de juiste is hangt af van de waarde in oudetabel.type.

Een andere oplossing zou zijn om de query voor elk type uit te voeren. Maar het probleem is dat ik dan een soort IF statement in de query moet hebben die er voor zorgt dat hij alleen kijkt naar de rijen met een bepaald type. Dit is niet ideaal aangezien ik dan de query vrij vaak moet uitvoeren naar mate er meer types zijn. Bovendien weet ik niet hoe ik zo'n IF statement moet plaatsen in een INNER JOIN statement?

Reageren