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

BIRT Discussion :

Fusionner deux crosstab


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Fusionner deux crosstab
    Bonjour,

    J'ai bien réussi à créer mes crosstabs mais je voudrais les faire fussionner car ils ont les mêmes lignes mais je ne sais pas comment faire. Voici un exemple :

    Crosstab1 :
    | Analyt1 | Analyt 2 |
    ------------------------------------------------|
    | Compte 700 | 156.20 | 14.80 |
    Produits | -------------------------------------|
    | Compte 701 | 14.00 | 110.99 |
    ------------------------------------------------|
    | Compte 600 | 143.50 | 59.99 |
    Charges | -------------------------------------|
    | Compte 601 | 6.99 | / |
    ------------------------------------------------|

    Crosstab2 :
    | Charg dir |
    --------------------------------------|
    | Compte 700 | 156.20 |
    Produits | ---------------------------|
    | Compte 701 | 14.00 |
    --------------------------------------|
    | Compte 600 | 143.50 |
    Charges | ---------------------------|
    | Compte 601 | 6.99 |
    --------------------------------------|

    Et je voudrais :

    | Analyt1 | Analyt 2 | Charg dir |
    -------------------------------------------------------------|
    | Compte 700 | 156.20 | 14.80 | 156.20 |
    Produits | -------------------------------------------------|
    | Compte 701 | 14.00 | 110.99 | 14.00 |
    -------------------------------------------------------------|
    | Compte 600 | 143.50 | 59.99 | 143.50 |
    Charges | -------------------------------------------------|
    | Compte 601 | 6.99 | / | 6.99 |
    -------------------------------------------------------------|


    Ca fait 3 jours que je suis dessus, help !

    Merci d'avance !

    Edit : désolé, la mise en page n'apparait pas correctement, j'espère que ce sera compréhensible quand même, sinon j'ai mis en pièce jointe le.txt où la mise en page est meilleure Crosstabs.txt

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Pourquoi ne crées-tu pas un seul tableau croisé utilisant un datacube contenant l'ensemble des dimensions dont tu as besoin ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Je ne suis pas sure d'avoir compris ce que tu voulais dire.

    J'ai bien créé un data cube, dedans j'ai 2 groupes, un pour les lignes et un autre pour les colonnes et un summary field pour mon premier crosstab et la même chose pour le second crosstab.

    Les données provenant de tables différentes, j'ai 2 datasets.

    Est-ce que c'est bien ?

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Je disais que tu devrais (même dois) utiliser un seul dataset. Tes données sont-elles en base de données ?

    Si oui, tu peux écrire une requête du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT t1.Compte , t1.Produit, Analyt1, Analyt2, ChargDir
    FROM (
            -- requete 1
            SELECT Compte , Produit, Analyt1, Analyt2
            FROM TABLE1
         ) as t1,
         (
            -- requete 2
            SELECT Compte , Produit, ChargDir
            FROM TABLE2
         ) as t2
    WHERE t1.Compte = t2.Compte
      AND t1.Produit = t2.Produit

    Edit: je crois que je me suis trompé dans la requête, ce serait plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Compte , Produit, analytid as COL_ID, analytvalue as COL_VALUE
    FROM TABLE1
    UNION        
    SELECT Compte , Produit, 'ChargDir' as COL_ID, value as COL_VALUE
    FROM TABLE2

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Je pense pouvoir faire cela sans problème mais je ne comprend pas comment je pourrais fusionner les 2 crosstabs

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    On ne peut pas fusionner des tableaux croisés. Il faut donc que tu fusionnes tes sources de données pour en avoir une seule qui te servira de à alimenter ton datacube.

    Comme je te l'ai déjà dis, tu peux passer par une requête du type 'UNION' pour fusionner les données de tes 2 requêtes.

    Erwan

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Mais si je fusionne mes sources de données, comment pourrais-je les intégrer dans le crosstab ?

    Dans mon data-cube, j'aurais alors 3 groupes : 2 pour les colonnes et un pour les lignes. Je mets en place les lignes et les premières colonnes mais à quel endroit dois-je intégrer les autres colonnes ? Cela n'est pas prévu dans le layout "standard" d'un crosstab.

    Peut-être que cela n'est pas possible, si ?

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Il faut que ta requête retourne 4 champs:
    • Produit
    • Compte
    • [Colonne Libellé]
    • valeur


    Le champ [Colonne Libellé] pourra avoir comme valeur : Analyt1, Analyt2, Charg dir.

    Pour cela, utilise une UNION pour fusionner tes 2 requêtes initiales :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    -- requête 1
    SELECT Compte , Produit, analytid as COL_LIB, value 
    FROM TABLE1
     
    UNION   
     
    -- requête 2    
    SELECT Compte , Produit, 'Charg dir' as COL_LIB, value
    FROM TABLE2
    Tu crées un groupe pour Produit --> Compte
    Puis tu crées un autre groupe [Colonne Libellé]

    Peux-tu fournir tes 2 requêtes si tu veux que je rédige cette requête ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Tout d'abord merci pour tes réponses.

    J'ai fait comme tu as dit : j'ai créé une seule requete qui renvoit tout ce dont j'ai besoin (les 4 champs).

    Le problème c'est à la création de mon data-cube :
    - Je crée un groupe avec mes Produits/Charges et comptes
    - Je crée un second groupe avec mes sections d'analyse

    Le problème c'est que quand je veux ajouter mes charges directes, il fait comme si mes charges directes étaient un nouveau mode de groupement, sous les sections d'analyse.
    Il fait comme si c'était un nouveau critère de tri et ce n'est pas ce que je veux.
    Je voudrais que ce soit comme une nouvelle colonne, complétement dissociée des sections d'analyse

    Est-ce que j'ai raté quelquechose ?

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Citation Envoyé par caroleo63 Voir le message
    Tout d'abord merci pour tes réponses.
    Le forum est fait pour cela

    Citation Envoyé par caroleo63 Voir le message
    J'ai fait comme tu as dit : j'ai créé une seule requete qui renvoit tout ce dont j'ai besoin (les 4 champs).

    Le problème c'est à la création de mon data-cube :
    - Je crée un groupe avec mes Produits/Charges et comptes
    - Je crée un second groupe avec mes sections d'analyse

    Le problème c'est que quand je veux ajouter mes charges directes, il fait comme si mes charges directes étaient un nouveau mode de groupement, sous les sections d'analyse.
    Il fait comme si c'était un nouveau critère de tri et ce n'est pas ce que je veux.
    Je voudrais que ce soit comme une nouvelle colonne, complétement dissociée des sections d'analyse

    Est-ce que j'ai raté quelquechose ?
    Tu devrais avoir :
    • un groupe avec Produits/Charges et comptes
    • un groupe avec un seul champ : section analyse


    Est-ce la cas ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Je viens de faire plusieurs essais et j'ai finalement réussi à faire afficher mes charges directes dans mon crosstab.

    Le soucis c'est que maintenant il me met les montants en en-tête des colonnes. Je pense donc que ma sélection n'est pas bonne. L'union ne devrait-elle pas se faire aussi sur le summary field ? Mais quand je fait cela, j'obtiens une somme dans une seule case, indépendamment des comptes...

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    En fait, c'est que ma fonction pour les section d'analyse était la fonction SUM. Mais pour les charges directes, je voudrais que ce soit FIRST.

    Est-ce possible ?

  13. #13
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    Je te propose de mettre les deux dans une case et de faire un test avec la propriété visibility pour voir l'un ou l'autre.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Très bonne idée les visibility. Je ne m'en suis jamais servi mais je vais me pencher dessus.

    Merci à tous les 2 pour vos réponses, je pense que maintenant je devrais arriver à faire à peu près ce que je veux, moyennant quelques heures de travail en plus !

    C'était la première fois que je postais sur un forum pour me faire aider mais je ne suis pas déçue. J'espère que dans quelques temps je serais une pro de birt et je pourrais aussi aider d'autres gens !

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

Discussions similaires

  1. FUSIONNER DEUX COLONNES : est ce posible ?
    Par ePoX dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/12/2005, 20h59
  2. Fusionner deux tables
    Par rdjema dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/11/2005, 18h42
  3. [Debutant] [JTable] Fusionner deux cellules
    Par devil26 dans le forum Composants
    Réponses: 4
    Dernier message: 03/05/2005, 13h39
  4. [TreeMap] comparer et fusionner deux TreeMap
    Par LoLoSS dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 06/09/2004, 11h49

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