IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Designer Discussion :

Designer-Opérations sur les dates


Sujet :

Designer

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut Designer-Opérations sur les dates
    Bonjour j'ai BO6.5, j'aimerais savoir est ce que c possible de faire un indicateur dans designer qui soustrait une date pour deux conditions différentes
    Merci

  2. #2
    Membre expérimenté
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Points : 1 342
    Points
    1 342
    Par défaut
    exemple STP ?
    ~ Bastoonet ~

    Consultant BI

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    En fait il s'agit d'un seul et même objet "date" que je voulais scinder en deux pour 2 conditions :
    date1 pour l'activité 1
    date 2 pour l'activité 2
    Je veux savoir tout simplement le temps écoulé entre l'activité 1 et 2 ?

  4. #4
    Membre régulier
    Profil pro
    Consultant
    Inscrit en
    Juillet 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 87
    Points : 110
    Points
    110
    Par défaut
    Il nous faut savoir sur quelle règle tu te bases pour identifier Activité1 et Activité2.
    Et puis dis-nous également quel SGBD tu utilises...

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    En fait je sais que c'est pas lié au SGBD (ORACLE 9i).

    Et les activités c'est un deuxième objet , plus clairement:
    Cas Date Activité
    001 01/09/07 13:12:45 1
    001 02/09/07 09:00:00 6
    001 05/09/07 12:30:56 2
    002
    003
    .
    .
    .
    Je veux savoir le temps moyen en jours et en heures que passe chaque cas entre l'activité 1 et 2 ?

  6. #6
    Membre régulier
    Profil pro
    Consultant
    Inscrit en
    Juillet 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 87
    Points : 110
    Points
    110
    Par défaut
    SI je comprends bien et si c'est toujours entre 1 et 2, la solution n'est pas dans Designer mais dans Reporter.
    Tu pourrais faire une rupture par cas et dans le pied de rupture faire une formule du genre =JoursEntre(Max(Date) où (Activité=1),Max(Date) où (Activité=2))
    et à la fin de ton tableau faire la moyenne de cette formule. Cela te donnera le nombre de jours moyen.

    Je ne garantis pas la syntaxe exacte, je n'ai pas BO sous la main...

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Je te remercie beaucoup.

    En fait j'avais essayé cette solution mais sans le "Max" et j'avais toujours une erreur.

    Maintenant, le JoursEntre me donne l'écart en jour. Je veux l'écart en heures aussi.

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut BO6-Ecart dates en jours et en heures??????
    Je veux savoir si dans la version 6 de BO, il y a moyen d'obtenir un écart de date en heures????

    Par exemple :
    16/09/2007 21:00:00
    17/09/2007 09:00:00
    L'écart est de : 12 Heures (et non pas 1 jour)

    Je ne vois pas de fonction prédéfinie pour cela (JoursEntre : écart en jours)

  9. #9
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut En utilisant DECODE
    Pourquoi ça ne marche pas avec Decode.
    J'ai fait dans designer un objet décrit comme suit :
    decode(WF_ACTIVITY_LOG.ACTIVITY_ID,'ACT-477',to_date(WF_ACTIVITY_LOG.DATE_CREATED,'DD-MM-YYYY HH24 :MI:SS'),null)-decode(WF_ACTIVITY_LOG.ACTIVITY_ID,'ACT-244',to_date(WF_ACTIVITY_LOG.DATE_CREATED,'DD-MM-YYYY HH24 :MI:SS'),null)

    L'analyse est réussi de cet objet. Mais dans Business Object il me donne erreur dans le SQL

    Pourquoi?

  10. #10
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut
    Citation Envoyé par samovich Voir le message
    Pourquoi ça ne marche pas avec Decode.
    J'ai fait dans designer un objet décrit comme suit :
    decode(WF_ACTIVITY_LOG.ACTIVITY_ID,'ACT-477',to_date(WF_ACTIVITY_LOG.DATE_CREATED,'DD-MM-YYYY HH24 :MI:SS'),null)-decode(WF_ACTIVITY_LOG.ACTIVITY_ID,'ACT-244',to_date(WF_ACTIVITY_LOG.DATE_CREATED,'DD-MM-YYYY HH24 :MI:SS'),null)

    L'analyse est réussi de cet objet. Mais dans Business Object il me donne erreur dans le SQL

    Pourquoi?
    Comment WF_ACTIVITY_LOG.ACTIVITY_ID peut il être à la fois (pour un même enregistrement) égal à 'ACT-477' et égal à 'ACT-244' ???
    Erreur de frappe dans le nommage de deux champs differents ou bien deux dates sur deux enregistrements différents identifiables par WF_ACTIVITY_LOG.ACTIVITY_ID ?
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  11. #11
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Merci pour m'avoir répondu,

    Il y a deux enregistrements: La date de création de l'activité ACT-477 et la date de création de l'activité ACT-244.
    L'objet créé est une soustraction de ces deux dates mais je n'arrive pas à l'exécuter.

  12. #12
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut
    C'est bien ce que je pensais 2 enregistrements et non pas 2 champs
    Ne sachant pas à quel DonnéeID se rapportent ces dates je vais supposer qu'il sagit des dates de ID
    Soit
    une table A listant ces ID
    et
    une table B contenant au moins 2 champs :
    ID et WF_ACTIVITY_LOG.ACTIVITY_ID
    Tu pourrais créer deux jointures de A ver B1
    C'est à dire de A vers B et de a vers B2 (Alias)
    Pourquoi ?
    Parce que A1 comportera une jointure restrictive WF_ACTIVITY_LOG.ACTIVITY_ID = 'ACT-244',
    et A2 une jointure restrictive
    WF_ACTIVITY_LOG.ACTIVITY_ID = 'ACT-244',
    en reliant A.ID=B1.ID(+) ET A.ID=B2.ID(+)
    Tu pourras créer ta formule.
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  13. #13
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Excuse moi, mais je n'ai pas très bien compris.

    Comme on est arrivé là, j'aimerais t'expliquer mieux:
    En fait j'ai toutes les données dans la même table WF_ACTIVITY_ID, Ok.
    Cette table contient le champ ID, Date_Created, Activity_ID et d'autres champs.
    Je veux calculer pour chaque ID, le temps écoulé entre l'activité ACT-477 et ACT-244

    Je n'ai pas compris pourquoi, je dois faire des jointure pour pouvoir établir la formule?

  14. #14
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut
    Comme les dates que tu veux calculer le temps écoulé entre l'activité ACT-477 et ACT-244 qui correspondent à deux enregistrements distincts !!! tu ne peux pas.
    Donc tu garde dans ton univers ta table WF_ACTIVITY_ID puisqu'elle contient d'autres champs dont tu peux avoir besoin pour d'autres objets.
    1) Dans le Menu Insertion tu choisis Tables Dérivées
    2) Tu tapes le SQL suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ID, Date_Created, Activity_ID 
    WHERE Activity_ID = 'ACT-477 '
    3) Tu nommes cette Table Dérivée ACT_477
    4) Tu crées une jointure externe entre la table WF_ACTIVITY_ID et la table Dérivée ACT_477
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WF_ACTIVITY_ID.ID = ACT_477.ID(+)
    5) Dans le Menu Insertion tu choisis Tables Dérivées
    6) Tu tapes le SQL suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ID, Date_Created, Activity_ID 
    WHERE Activity_ID = 'ACT-244'
    7) Tu nommes cette Table Dérivée ACT-244
    8) Tu crées une jointure externe entre la table WF_ACTIVITY_ID et la table Dérivée ACT_244
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WF_ACTIVITY_ID.ID = ACT_244.ID(+)
    9) Maintenant tu peux créer 3 objets
    DateHeureACT-244 Select: ACT_244.Date_Created
    DateHeureACT-477 Select: ACT_477.Date_Created
    Durée Select: decode(ACT_477.Date_Created, NULL,NULL,decode(ACT_244.Date_Created,NULL,NULL, ACT_477 - ACT_244))

    Tu devrais essayer et me dire ....
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  15. #15
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    J'ai essayé les tables dérivées mais j'ai des doublons.
    Par exemple :
    Pour ID j'ai 2 dates D1, D2 pour ACT-477 et 2 dates de création T1, T2 pour ACT-244. (Le parcours entre l'activité ACT-477 et ACT-244 a été effectué 2 fois : D1->T1 et D2->T2)
    En suivant à la lettre ce que tu m'as recommandé j'ai :
    ID D1 T1 (T1-D1) (Bon)
    ID D1 T2 (T2-D1) (Non voulu)
    ID D2 T1 (T1-D2) (Non voulu)
    ID D2 T2 (T2-D2) (Bon)

    Même avec les jointures restrictives j'ai le même problème.

  16. #16
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut
    Ca tu ne nous l'avais pas dit que tu pouvait avoir deux dates D1 D2 pour un même ID

    ID ne peut donc suffire comme identifiant UNIQUE !
    il te faut donc trouver un champ de plus qui concaténé avec ID permettra une jointure sans doublons vers les deux tables dérivées (dans lesquelles tu dois également ajouter ce champ concaténé.
    Exemple si tu as un champ Numéro sorte de numéro qui permet pour un ID de différencier les Activités.
    Tu dois ajouter dans les tables dérivées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ID || to_char(Numéro,'0') AS MonID, ID, Date_Created, Activity_ID 
    WHERE Activity_ID = 'ACT-477 '
    SELECT SELECT ID || to_char(Numéro,'0') AS MonID, ID, Date_Created, Activity_ID 
    WHERE Activity_ID = 'ACT-244'
    Ce qui te permettra de modifier les jointures de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WF_ACTIVITY_ID.ID  || to_char(WF_ACTIVITY_ID.Numéro,'0')  = ACT_477.MonID(+)
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  17. #17
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Je te remercie beaucoup BRUNO2R pour ton aide.

    Mais, Est ce qu'il y a une solution plus simple que concaténer l'ID avec une chaine. Ca ne marche dans mon univers.
    Dans la table en question où j'aimerais calculer cet écart, a comme ID comme PK et activity_ID comme FK. il y a aussi la date de création de l'activité qui permet de différencier les enregistrements.
    Est ce que ça peut marcher avec des alias même si je crois que ça va être la même histoire(des doublons...)

Discussions similaires

  1. Opérations sur les dates
    Par coyotte507 dans le forum Contribuez
    Réponses: 12
    Dernier message: 07/03/2007, 13h32
  2. Opération sur les dates
    Par alainGL dans le forum Access
    Réponses: 2
    Dernier message: 07/03/2007, 08h27
  3. Opération sur les dates
    Par obily dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 19/01/2007, 14h30
  4. opération sur les dates
    Par AMARI_SALIM dans le forum Langage
    Réponses: 14
    Dernier message: 19/07/2006, 18h05
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo