Ik wil het volgende gaan doen.
Ik heb een tabel waarbij de kolommen maanden zijn (vanaf 1988) met een uitzondering, dat is een naam.
Iedere maand is er per naam een waarde. Iedere maand moet ik de 10 hoogste en de 10 laagste waarde hebben.
De hoogste waarden moet vervolgens door de laagste gedeeld worden om een verhouding te krijgen.
Daarna komt de volgende stap. Op basis van de verhouding wordt aan 10 laagste en 10 hoogste waarden van die maand per naam een waarde toegekend. Te beginnen bij bijv. 100. Dit cijfer kan op basis van andere gegevens (andere tabel) toenemen of afnemen per maand, dus de tweede maand moet de uitkomst van maand 1 gebruikt worden etc.
Dus mijn vraag: Hoe kan dit effect gescript worden in php/mysql?
Nu heb ik, om te testen slechts voor de eerste twee maanden, per maand 2 queries. Eentje descending, de ander ascending limit 10. Dan print ik de naam en de bijbehorende waarde.
Hoe kan ik vervolgens met die waarden de verhoudingen gaan berekenen? Ik heb dus 2 aparte queries waar met behulp van mysql_fetch_array de 10 hoogste (of laagste) waardes uitrollen. Die moet ik, dus van aparte queries, door elkaar delen. Dit moet ook per maand.
Hopelijk ben ik een beetje duidelijk.
Als dat eenmaal gelukt is moet ik dus uit een andere tabel een waardeverandering halen en die verrekenen met de waardes om op een nieuw totaal uit te komen, op basis van dat totaal moet ik in de volgende maand weer nieuwe waardes toekennen.
Mijn (eerste) probleem:
Hoe deel ik waardes uit 2 verschillende queries als de gegevens uit dezelfde tabel komen dus de kolomnamen identiek zijn.
Als het verhaal duidelijk is... kan het niet simpeler?
Ten eerste: Kan dit niet simpeler? Want dit moet tot nu (april 2007), anders heb ik 232x een dubbele query -> dat zijn veel queries.
Daarna moet ik de hoogste door de laagste delen (degene die onder elkaar staan) om een verhouding te krijgen, op basis daarvan bepaal ik welk bedrag geinvesteerd wordt in die aandelen (iets lastiger dan dit maar komt hier op neer). De waarde van de portefeuille begint bijv. dus met 1000 in januari 1988, op basis van het rendement in januari is dat dus anders in februari en dat bedrag moet ik dan weer investeren.
Ziet er niet echt efficient uit. De uitgelezen waarden na een query zet ik in een array zodat ik er later mee kan rekenen.
Dit is nu voor een maand, er zijn er 232... In plaats van dit deel steeds te kopieren en plakken (en dan maanden aan te passen) moet het toch mogelijk zijn dat automatisch te doen?