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

Discussion :

Plusieurs montants et plusieurs date différentes dans un même tableau [WebI Xi3]

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Plusieurs montants et plusieurs date différentes dans un même tableau
    Bonjour tout le monde,

    Je viens vous demander de l'aide. J'ai beaucoup de mal à avancer sur mon travail...

    Voilà, je débute complètement en B.O. et on me demande de réaliser un tableau censé être simple.
    Il s'agit d'un tableau comptable actualisé au 2e jour ouvré du trimestre en cours. Il peut éventuellement être lancé un autre jour.

    Ce tableau doit faire apparaître plusieurs montants à des dates différentes :
    - Colonne 1 : ID client
    - Colonne 2 : ID compte
    - Colonne 3 : Montant A imputé au dernier jour ouvré du trimestre T-1
    - Colonne 4 : Montant B imputé au 1er jour ouvré du trimestre T
    - Colonne 5 : Montant C imputé au 1er jour ouvré du trimestre T
    - Colonne 6 : Montant D imputé au 1er jour ouvré du trimestre T
    Ces montants ne font pas tous parti des mêmes Univers.
    J'ai donc autant de requêtes que de type Montant.

    J'ai 3 Univers :
    - Univers X : Gestion client
    - Univers Y : Montant A, Montant B
    - Univers Z : Montant C, Montant D

    Dans chacun de ces Univers, j'ai créé les objets dates :
    - 1er jour ouvré du trimestre T
    - Dernier jour ouvré du trimestre T-1
    à partir d'une "date calendrier"

    Dans chacune de mes requêtes, j'indique que la "Date Calendrier" est égal à la "date du Montant". (ex : "Date de calendrier" = "date du montant A")

    Mon problème principal est celui ci : je ne parviens pas à faire cohabiter ces 4 montants dans le tableau.
    J'ai l'impression d'avoir tout essayé mais mes carences techniques me bloquent énormément.

    Par exemple, j'ai essayé dans le tableau :
    "[Montant A]Where([Date Montant A]=[Dernier jour ouvré du trimestre T-1]), et HOP! le montant disparaît comme par magie...

    Pouvez vous m'aider ? ça fait tellement longtemps que je galère dessus. B.O. me donne l'impression d'être un gros débile...


    merci d'avance.

    Ps : Voici le SQL de l'objet DERN_JOUR_OUVRE_TRIMPRECEDENT
    SELECT C1.DATE_JOUR,MAX(C3.DATE_JOUR) AS DERN_JOUR_OUVRE_TRIMPRECEDENT
    FROM
    UNIVERSADM.UNIVERS_CALENDRIER C1,
    UNIVERSADM.UNIVERS_CALENDRIER C2,
    UNIVERSADM.UNIVERS_CALENDRIER C3
    WHERE C1.DATE_JOUR = C2.DATE_JOUR
    AND C3.DATE_JOUR <= (TRUNC(C2.DATE_JOUR,'Q')-1)
    AND C3.DATE_JOUR >= (TRUNC(C2.DATE_JOUR,'Q')-5)
    AND C3.TYPE_JOURNEE = 'O'
    GROUP BY C1.DATE_JOUR
    ) CALENDRIER_SUPPLEMENTAIRE

    Bien sûr, je n'ai pas écrit moi même le SQL. Trop compliqué pour moi pour le moment @___@

  2. #2
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Bonjour,

    Pour la formule SQL, on va partir du principe qu'elle est juste. (Bien qu'elle ne corresponde pas à un objet : 2 éléments dans le SELECT)

    Bref, ce que je ne comprends c'est que tu dis que tu fais autant de requêtes qu'il y a de montants (ce qui est très bien) ce qui tend à dire que tu as déjà filtré dans tes requêtes les jours desquels il faut extraire les montants.

    Du coup, lorsque tu places tes indicateurs dans ton tableau, ils sont déjà filtrés... Donc pourquoi vouloir remettre une condition avec un WHERE ?
    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

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse,

    Voici le format de mes requetes :

    Requête 1, Gestion Client :
    * Objet du résultat : [ID client], [ID compte], [Date Calendrier]
    * Filtres : {condition client}, {condition compte}
    {[Date calendrier]=sysdate}

    Requête 2, Montant A :
    * Objet du résultat : [ID client], [ID compte]
    [Total Montant A], [Date Montant A]
    [Dernier jour ouvré du trimestre T-1]
    * Filtres : {condition client = condition client.REQ1},
    {condition compte = condition compte.REQ1}
    {[Date calendrier]=[Date Montant A]}

    Requête 3, Montant B :
    * Objet du résultat : [ID client], [ID compte]
    [Total Montant B], [Date Montant B]
    [Premier ouvré du trimestre T]
    * Filtres : {condition client = condition client.REQ1},
    {condition compte = condition compte.REQ1}
    {[Date calendrier]=[Date Montant B]}

    Requête 4, Montant C :
    * Objet du résultat : [ID client], [ID compte]
    [Total Montant C], [Date Montant C]
    [Premier ouvré du trimestre T]
    * Filtres : {condition client = condition client.REQ1},
    {condition compte = condition compte.REQ1}
    {[Date calendrier]=[Date Montant C]}

    Requête 5, Montant D :
    * Objet du résultat : [ID client], [ID compte]
    [Total Montant D], [Date Montant D]
    [Premier ouvré du trimestre T]
    * Filtres : {condition client = condition client.REQ1},
    {condition compte = condition compte.REQ1}
    {[Date calendrier]=[Date Montant D]}


    Donc si je comprends bien, mon problème, c'est que je n'avais pas compris qu'une fois que je sélectionnais "premiere date..." ou "derniere date.." du trimestre dans les objets du résultat, il filtrait automatiquement les montant sur ces objets ?

    Dans ce cas, je dois simplement enlever "Date du montant n" des requêtes "montant n" ?

  4. #4
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    En fait, dans tes requêtes, je ne comprends pas bien tes conditions sur les dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {[Date calendrier]=[Date Montant A]}
    car tu réutilises [Date calendrier] à chaque fois... A moins que c'était simplement un raccourci pour dire que tu filtres avec la date du calendrier qui t'intéresse pour chaque requête.

    Si c'est bien le cas, il te suffit de supprimer tes dates des objets du résultat de chaque requête (ceci dit tu peux en garder une si tu as besoin), de les lier correctement sur ID client et ID compte, et de placer tes objets dans un tableau.
    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

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci,

    Oui en fait, les objets
    [Dernière Date du trimestre-1]
    et
    [Premiere date du trimestre]
    ont pour identifiant "Date Jour" de la table calendrier.

    Du coup pour chaque requête, je lui indique que l'objet [Date jour] est égal a l'objet [Date Montant].

    N'est ce pas la bonne méthode ?
    En tout cas, ça semble marcher.

    Maintenant, j'ai toujours un autre problème qui est dans l'introduction de mon sujet.

    Ce document doit obtenir des montants qui sont pour certain à la fin d'un trimestre et d'autres au début du trimestre suivant (des intérêts), à condition qu'ils soient des jours ouvrés.
    Voilà ce que j'ai fait :
    - J'ai inscrit la valeur "04/10/2010" pour l'objet [Date Jour] dans le filtre de la première requête. C'est le deuxième jour ouvré du mois d'octobre (vendredi 1, lundi 4).
    - pour chacune des requêtes, je lui dit {[Date Montant.Montant*n] = Résultats de [Date jour.GestionClient]}

    Il ne me sort aucun résultat.
    SI je regarde directement en base, je vois que pour un compte donné, j'ai bien une somme imputée au 01/10/2010.

    Lorsque je lui dit "Vas chercher les sommes entre le 29/09 et le 04/10, il me sort des résultats mais je crois qu'il me fait un cumul des sommes de chaque journée. (Deux des montants sont des soldes de fin de journée)


    Suis je assez clair dans mon explication ? Peux tu me donner encore un pti coup de main ?

    Mon premier problème, que tu m'as fait résoudre en un clin d'oeil, me montre que j'ai encore une forte marge de progression en ce qui concerne le SQL et BO. (forme polie de "je suis vraiment nul a chier)
    J'ai le sentiment que c'est la même là.. Un truc completement bête auquel je ne pense pas..


    Merci encore

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Gariel Voir le message
    Lorsque je lui dit "Vas chercher les sommes entre le 29/09 et le 04/10, il me sort des résultats mais je crois qu'il me fait un cumul des sommes de chaque journée. (Deux des montants sont des soldes de fin de journée)
    Et en plus il me sort les résultats de deux trimestres à la fois............

  7. #7
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    OK... Alors repartons de zéro, en reprenant l'exposé du problème.
    Si j'ai bien compris, le but est de ramener des montants à différentes dates pour les clients présents à la date du jour. Donc :

    Requête 1, Gestion Client :
    * Objet du résultat : [ID client], [ID compte], [Date Calendrier]
    * Filtres : {condition client}, {condition compte}
    {[Date calendrier]=sysdate}

    Requête 2, Montant A :
    * Objet du résultat : [ID client], [ID compte], [Total Montant A]
    * Filtres : {condition client = condition client.REQ1},
    {condition compte = condition compte.REQ1}
    {[Date calendrier]=[Dernier jour ouvré du trimestre T-1]
    }

    Requête 3, Montant B :
    * Objet du résultat : [ID client], [ID compte], [Total Montant B]
    * Filtres : {condition client = condition client.REQ1},
    {condition compte = condition compte.REQ1}
    {[Date calendrier]=[1er jour ouvré du trimestre T]}

    Requête 4, Montant C :
    * Objet du résultat : [ID client], [ID compte], [Total Montant C]
    * Filtres : {condition client = condition client.REQ1},
    {condition compte = condition compte.REQ1}
    {[Date calendrier]=[1er jour ouvré du trimestre T]}

    Requête 5, Montant D :
    * Objet du résultat : [ID client], [ID compte], [Total Montant D]
    * Filtres : {condition client = condition client.REQ1},
    {condition compte = condition compte.REQ1}
    {[Date calendrier]=[1er jour ouvré du trimestre T]}

    Cela fait, il faut s'assurer que toutes les requêtes sont bien liées (dans le cube) sur les dimensions ID client et ID compte (ce qui n'est pas sur étant donné que les données proviennent de différents univers)

    Après, il suffit de placer les objets [ID Client] [ID Compte] [Date calendrier] [MontantA] [MontantB] [MontantC] et [MontantD] dans ton tableau.
    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

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Il faut donc que je crée un objet "Premier date ouvré du trimestre en cours".

    Je devrais m'en sortir avec tes conseils.

    Merci

  9. #9
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    C'est ça, il faut que tu crées deux objets pour chacune des deux dates possibles : "dernier N sur T-1" et "premier N sur T".

    Ce sont ces objets qui te serviront à filtrer tes requêtes. De là, ça devrait rouler tout seul.
    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

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/06/2015, 14h01
  2. [SQL] affichage de tables différentes dans un même tableau
    Par brindherbe86 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/03/2008, 12h33
  3. [MySQL] affichage de données de plusieurs tables dans un même tableau ?
    Par undebutant dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/03/2007, 11h56
  4. Réponses: 7
    Dernier message: 13/10/2006, 00h45
  5. Réponses: 4
    Dernier message: 02/07/2006, 21h00

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