Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
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 20/06/2008, 11h11   #1
Invité régulier
 
Inscription : juin 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 23
Points : 6
Points : 6
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
caroleo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 11h22   #2
Membre éclairé
 
Inscription : novembre 2005
Messages : 385
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 385
Points : 362
Points : 362
Pourquoi ne crées-tu pas un seul tableau croisé utilisant un datacube contenant l'ensemble des dimensions dont tu as besoin ?
erwan.bodere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 11h52   #3
Invité régulier
 
Inscription : juin 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 23
Points : 6
Points : 6
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 ?
caroleo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 13h59   #4
Membre éclairé
 
Inscription : novembre 2005
Messages : 385
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 385
Points : 362
Points : 362
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 :
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 :
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
erwan.bodere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 20h10   #5
Invité régulier
 
Inscription : juin 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 23
Points : 6
Points : 6
Je pense pouvoir faire cela sans problème mais je ne comprend pas comment je pourrais fusionner les 2 crosstabs
caroleo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 09h11   #6
Membre éclairé
 
Inscription : novembre 2005
Messages : 385
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 385
Points : 362
Points : 362
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
erwan.bodere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 09h33   #7
Invité régulier
 
Inscription : juin 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 23
Points : 6
Points : 6
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 ?
caroleo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 10h44   #8
Membre éclairé
 
Inscription : novembre 2005
Messages : 385
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 385
Points : 362
Points : 362
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 :
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 ?
erwan.bodere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 17h40   #9
Invité régulier
 
Inscription : juin 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 23
Points : 6
Points : 6
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 ?
caroleo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 13h27   #10
Membre éclairé
 
Inscription : novembre 2005
Messages : 385
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 385
Points : 362
Points : 362
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 ?
erwan.bodere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 18h01   #11
Invité régulier
 
Inscription : juin 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 23
Points : 6
Points : 6
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...
caroleo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 18h13   #12
Invité régulier
 
Inscription : juin 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 23
Points : 6
Points : 6
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 ?
caroleo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 10h00   #13
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
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 299
Points : 8 650
Points : 8 650
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.
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 10h42   #14
Invité régulier
 
Inscription : juin 2008
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 23
Points : 6
Points : 6
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 !
caroleo63 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 02h50.


 
 
 
 
Partenaires

Hébergement Web