|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() BP BP Inscription : mai 2010 Messages : 54 ![]() |
Bonjour à toutes et à tous,
J'essai de créer un objet "Age" sous designer qui sache tenir compte du mois et du jour anniversaire. Je travail avec un case when mais je débute encore et mon objet génère une erreur oracle "Nombre non valide". Puis-je vous demander un peu d'aide pour situer mon erreur ? Ma requête est la suivante : case when (To_Number(to_char(SYSDATE,'MM')) > To_Number(to_char("Personne"."DateN",'DD/MM/YYYY'),'MM')) or (To_Number(to_char(SYSDATE,'MM')) = To_Number(to_char("Personne"."DateN",'DD/MM/YYYY'),'MM') and To_Number(to_char(SYSDATE,'DD')) >= To_Number(to_char("Personne"."DateN",'DD/MM/YYYY'),'DD')) then (To_Number(to_char(SYSDATE,'YYYY')))-(To_Number(to_char("Personne"."DateN",'DD/MM/YYYY'),'YYYY')) else ((To_Number(to_char(SYSDATE,'YYYY')))-(To_Number(to_char("Personne"."DateN",'DD/MM/YYYY'),'YYYY'))-1) End Mais il y a très certainement plus simple. En vous remerciant par avance, Burt |
|
|
00
|
|
|
#2 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Je pense en effet qu'il y'a beaucoup plus simple
Je te propose la formule suivante (en supposant que tu es sous oracle) : Code :
SELECT trunc((sysdate - "Personne"."DateN" ) / 365.25 ) FROM Personne
__________________
|
|
|
00
|
|
|
#3 | |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 271 ![]() |
SELECT ? FROM DUAL ?
Citation:
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() BP BP Inscription : mai 2010 Messages : 54 ![]() |
Merci, mais c'est bien là le problème. Si j'applique cette formule j'aurai un age approximatif ; mon problème est d'avoir l'âge de la personne au jour près. Si elle est née le 18 décembre 1910, elle ne doit avoir 100 ans que le 18 décembre à 0h00 et 99 ans avant.
|
|
|
00
|
|
|
#5 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 271 ![]() |
Pourquoi la formule de Julien renverrait un âge approximatif ?
Elle fait la différence en nombre de jours entre la date du jour et la date de naissance, divisée par le nombre de jours dans une année, que l'on tronque ensuite pour ne garder que les valeurs entières... A moins que ça ne soit le ",25" qui t'ennuie ?
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() BP BP Inscription : mai 2010 Messages : 54 ![]() |
Oui, c'est ce 0,25 qui me gène. Au pire ça peut me fausser l'age de 2 jours, ce qui n'est pas enorme je suis d'accord, mais qui me plantera nécéssairement la suite du boulot à un moment ou à un autre.
|
|
|
00
|
|
|
#7 | ||
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Il y'a un léger décalage en effet
![]() Code :
Bon courage
__________________
|
||
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() BP BP Inscription : mai 2010 Messages : 54 ![]() |
Merci Julien, j'ai essayé ta solution et elle a l'air plutot pas mal. J'ai juste des dates de naissance "null" dans ma base de données et ça me fout le bordel mais je devrai réussir à eliminer ça sans trop de problème.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com