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

Webi Discussion :

[BO XI R2 Designer (WebI)] Comment modéliser le dernier et l'avant dernier ? [Fait]


Sujet :

Webi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut [BO XI R2 Designer (WebI)] Comment modéliser le dernier et l'avant dernier ?
    Bonjour,
    je profite de m'être inscrit pour poser mes problèmes, rassurez-vous, je n'en avais que deux sous le coude

    J'ai besoin de créer des objets "Date de dernier truc", "Date de l'avant dernier", et "Date de l'avant avant dernier",
    à partir d'un champ "Date du truc" en base,
    et selon certaines conditions masi là n'est pas le problème.

    L'objet "Dernière date" est fastoche, il suffit de faire un max(date).

    Par contre, je bute sur l'objet "Avant dernière date".
    Si je le crèe avec max(date) where < objet "Dernière date",
    il me fait en SQL un where date < max(date)
    alors qu'il me faudrait un where date < (select max(date) from etc...)

    Comment créer un subselect avec le Designer (ou une variable WebI, pas de passion) ?
    Ou comment faire autrement ?
    (je devrais pouvoir le faire en créant deux alias de la table pour l'avant dernier et l'avant avant dernier, mais le méta-modèle va devenir imbitable si je commence à tripliquer des tables pour chaque colonne )

    Merci beaucoup pour vos conseils, et bon dimanche,
    Matrick

  2. #2
    Membre éprouvé
    Avatar de Ayana
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 901
    Points : 1 180
    Points
    1 180
    Par défaut
    heu, question bête : max(date de truc) -1 , ça marche pas ?!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Ayana Voir le message
    heu, question bête : max(date de truc) -1 , ça marche pas ?!
    Merci Ayana pour ta réponse,
    mais ça va me donner la date de la veille du dernier,
    alors que je cherche celle de de l'avant dernier dans la base,
    ce serait trop simple si il y avait une et une seule date par jour pour chaque évènement

  4. #4
    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 : 70
    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
    Bonsoir,
    Je pense que ta solution est dans la construction d'une table dérivée.
    Une table dérivée est le résultat d'un sql que tu utilises ensuite comme une table de la base.
    C'est l'équivalent d'une vue oracle.
    Tu dois pour résoudre ton problème créer une table dérivée utilisant les fonctions analytiques d'Oracle permettant de mettre sur une ligne la date, la précédente et pourquoi pas la suivante ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci de vos réponses et de votre accueil,
    je regarde tout celà de plus près demain, et vous tiendrais au courant

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci Bruno2r,
    je suis effectivement passé par une table dérivée, ça marche nickel
    sauf que ça alourdit un peu le modèle graphique sous Designer, mais bon on va faire avec pour le moment !

    Je ne connaissais pas, c'est sympa de pouvoir faire du SQL pur

    Je l'ai donc bâtie avec un code du style pour Oracle 10g :
    select code,
    (select max(date) from table where etc...),
    (select max(date) from table where etc...
    and date <(select max(date) from table where etc...) ),
    (select max(date) from table where etc...
    and date < (select max(date) from table where etc...
    and date <(select max(date) from table where etc...) ))
    from table where etc...

    Avec Oracle 10g, ce type de codage est assez performant, il n'exécute qu'une seul fois chaque requête, ce qui fait que la vue est vite construite, ça évite tout produit cartésien.

    Bonne journée à tous,
    Matrick

  7. #7
    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 : 70
    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
    Voila une affaire qui roule !

    Et en plus il met des sur ses sujets de discussion !
    Il est parfait ce "nouvel invité" !

    Que ceux qui seraient tentés d'en faire autant ne se retiennent surtout pas ....

    Bon reviens souvent nous voir et si tu peux aider les collègues ne t'en prive pas.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Bruno2r Voir le message
    B]Et en plus il met des sur ses sujets de discussion ![/B]
    Ben vi, normal
    Il m'a par contre fallu remonter tout en haut du forum dans la FAQ ou avoisinnant pour trouver le bouton qui allait bien,
    le mettre tout en bas n'est pas vraiment intuitif, perso je l'aurais plutôt mis si c'est faisable en haut quand tu édites le premier sujet du topic ?


    Citation Envoyé par Bruno2r Voir le message
    Bon reviens souvent nous voir et si tu peux aider les collègues ne t'en prive pas.
    Ce ne manquera probablement pas d'arriver
    Par contre, les collègues, je ne les encouragerais pas forcément,
    ils vont me faire trop de variables zarbes,
    j'attends qu'ils comprennent avant tout le minimum en SGBD

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/07/2008, 17h03
  2. [Win'Design] Comment modélise-t-on une agrégation ?
    Par Nimothenicefish dans le forum Autres
    Réponses: 0
    Dernier message: 18/01/2008, 09h30
  3. Réponses: 3
    Dernier message: 31/03/2006, 13h40
  4. Réponses: 1
    Dernier message: 13/02/2006, 03h13
  5. [MEA] Comment modéliser la gestion des années ?
    Par ronando dans le forum Schéma
    Réponses: 6
    Dernier message: 10/11/2004, 17h25

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