Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Designer
Designer Forum d'entraide Designer (création d'univers, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/12/2010, 15h33   #1
Membre à l'essai
 
BP BP
Inscription : mai 2010
Messages : 54
Détails du profil
Informations personnelles :
Nom : BP BP

Informations forums :
Inscription : mai 2010
Messages : 54
Points : 24
Points : 24
Par défaut Création d'un objet âge

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
Burt67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 15h47   #2
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
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
Bon courage
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 15h50   #3
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
SELECT ? FROM DUAL ?
Citation:
Envoyé par burt67
je débute encore
Julien, je sais qu'on est vendredi 16h mais quand même
__________________
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.
TomDuBouchon est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 16h14   #4
Membre à l'essai
 
BP BP
Inscription : mai 2010
Messages : 54
Détails du profil
Informations personnelles :
Nom : BP BP

Informations forums :
Inscription : mai 2010
Messages : 54
Points : 24
Points : 24
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.
Burt67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 16h27   #5
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
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.
TomDuBouchon est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 17h02   #6
Membre à l'essai
 
BP BP
Inscription : mai 2010
Messages : 54
Détails du profil
Informations personnelles :
Nom : BP BP

Informations forums :
Inscription : mai 2010
Messages : 54
Points : 24
Points : 24
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.
Burt67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 17h18   #7
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Il y'a un léger décalage en effet

Code :
1
2
3
4
5
6
7
SELECT
decode ( sign(to_char(sysdate,'mmdd') - to_char(personne.date1,'mmdd')) ,
 -1 , 
  to_char(sysdate,'yy')-to_char(personne.date1,'yy')-1 ,
 to_char(sysdate,'yy')-to_char(personne.date1,'yy'))
FROM
personne
C'est un peu plus court que ce que tu as fait et chez moi ca fonctionne.
Bon courage
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 19h21   #8
Membre à l'essai
 
BP BP
Inscription : mai 2010
Messages : 54
Détails du profil
Informations personnelles :
Nom : BP BP

Informations forums :
Inscription : mai 2010
Messages : 54
Points : 24
Points : 24
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.
Burt67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h54.


 
 
 
 
Partenaires

Hébergement Web