Calculer un âge de manière relative

Fermé
prabang Messages postés 2 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 12 février 2013 - Modifié par prabang le 11/02/2013 à 22:00
prabang Messages postés 2 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 12 février 2013 - 12 févr. 2013 à 20:31
Bonjour,

J'ai plus de 65000 clients avec leur date de naissance et un âge calculé au mois de février 2013.
Parallèlement, j'ai une date de début de fonctionnement d'un produit (qui peut s'échelonner de janvier 2011 à décembre 2012. J'aimerais savoir quel âge avait chaque client à la souscription du produit.
J'ai commencé par créer une variable "MOIS DE NAISSANCE", puis une autre "ANNEE DE NAISSANCE" puis "MOIS DEBUT DE FONCTIONNEMENT DU PRODUIT" puis "ANNEE DEBUT DE FONCTIONNEMENT DU PRODUIT" et je pêche car j'ai peur d'oublier des cas (surtout au changement d'année et mois de janvier ( mois 01) et décembre (mois 12).
Comment faire ? Merci de votre aide.

Langage sql.

2 réponses

silentData Messages postés 183 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 18 octobre 2013 40
12 févr. 2013 à 09:01
Je ne pense pas qu'il soit possible d'"oublier des cas"...

Prends l'année de souscription et soustraits-y leur année de naissance, tu auras l'âge possible que pourraient avoir les clients.

Ensuite, il ne reste plus qu'à supprimer une année selon qu'ils aient déjà eut leur anniversaire à la date de souscription ou non. En pseudo-code, cela donne :

Age = dateSouscription.annee - dateNaissance.annee

Si dateSouscription.mois > dateNaissance.mois OU (dateSouscription.mois = dateNaissance.mois ET dateSouscription.jour > dateNaissance.jour) ALORS
    Age = Age - 1
Fin Si


J'espère avoir pu t'aider
0
prabang Messages postés 2 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 12 février 2013
12 févr. 2013 à 20:31
Super ! Je n'ai pas fait comme ça mais cela revient au même. Merci.
0