Mailinglisten-Archive |
Hallo Achim! Achim schrieb: > ich möchte aus einer Tabelle Mitglieder eines Vereins zwecks 25Jähriger > Ehrung auslesen. > > Ich hab die Spalten: Eintrittsdatum und Geburtsdatum. > > Bedingung für die 25jährige Ehrung ist: das Mitglied muss beim Eintritt > mindestens 14 Jahre alt sein! > > Das ist ja noch verhältnismäßig einfach: > > Year(eintrittsdatum) –year(geburtsdatum) <= 14 > aber schon falsch ... Angenommen ich bin im Jahr 2000 in euren Verein eingetreten und 1970 geboren, dann ergibt deine Berechnung: 2000 - 1970 = 30 Das erfüllt aber nicht deine Bedingung X <= 14 Andersherum (X >= 14) wird es schon richtiger, aber ich habe meine Zweifel, ob es hinreichend genau ist! Denn wenn du schon Wert auf das Alter zum Zeitpunkt des Eintritts legst, dann müsste man es imho auch genau machen - also jeweils das genaue Datum (Tag, Monat und Jahr) von Geburtstag und Eintritt nehmen. Außerdem hast du damit noch ein anderes Problem - siehe unten! > And > > Year(now()) – year(eintrittsdatum) = 25 > > Aber wenn jetzt Jemand zu diesem Zeitpunkt bzw. erst 13 war, dann kann er ja > im nächsten jahr geehrt werden. Dann ist aber nach meiner Formel schon 26 > Jahre vergangen und er erscheint nicht mehr in meiner Abfrage. > Beispiel: Eingetreten: 1984 Geboren: 1971 Now: 2009 1984 - 1971 = 13 2009 - 1984 = 25 nächstes Jahr: 1984 - 1971 = 13 2010 - 1984 = 26 Merkst du was? Mit deiner Berechnung Year(eintrittsdatum) – Year(geburtsdatum) ermittelst du immer denselben Wert, nämlich das Alter zum Zeitpunkt des Eintritts. Damit allein kommst du also nicht weit. Wenn ich also mind. 25 Jahre im Verein sein muss seit ich mind. 14 Jahre alt bin, um geehrt zu werden, dann hast du ja eine zusätzliche Bedingung (neben den genau 25 Jahren Vereinszugehörigkeit). Also wirst du (vermutlich) nicht mit einer einzelnen Abfrage auskommen und wirst eine Fallunterscheidung machen müssen. Leute, die beim Eintritt mind. 14 Jahre alt waren, können demnach auch genau in dem Jahr wo sie 25 Jahre dem Verein angehören geehrt werden. Diejenigen, die beim Eintritt aber jünger waren, müssen dementsprechend länger dem Verein angehören, um ihre 25-Jahr Ehrung zu erhalten. Also wenn Eintrittsalter < 14 dann: Year(now()) – (25 + (14 - Eintrittsalter)) = 25 > Ich hab schon jede Menge Umstellungen gemacht komme aber nicht weiter. > Vielleicht hat ja jemand noch eine Idee. > Hoffe, das hilft dir weiter bei deinen Überlegungen. Gunther PS: Persönlich finde ich das ja etwas merkwürdig mit dieser Altersregelung, denn entweder gehöre ich dem Verein seit 25 Jahren oder nicht. Was hat das denn mit dem Alter beim Eintritt zu tun?
php::bar PHP Wiki - Listenarchive