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 :

[Designer] Faire une jointure


Sujet :

BIRT

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut [Designer] Faire une jointure
    Bonjour,
    Pour prendre l'outil en main, je le teste avec une base test.
    Mon problème est qu'il m'est impossible de faire une jointure dans la fenêtre pour créer un dataset.
    Je possède donc deux tables:
    produitB avec pour champ: idproduit (la clef primaire), nom et qte
    coutB avce pour champ : idcout(la clef primaire), annee, prix, idproduit (la clef etrangere qui refere produitB).
    J'ai écrit la requête suivant:
    select produitB.nom, produitB.qte, coutB.prix
    from produitB, coutB
    where produitB.idproduit = coutB.idproduit
    Mais lorsque je souhaite visualiser le résultat sous "Preview Results" les champs sont vides.
    Merci pour votre aide.

  2. #2
    Membre éprouvé Avatar de HelpmeMM
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juin 2007
    Messages : 473
    Points : 969
    Points
    969
    Par défaut
    base test ??? tu parle parle de la base sample de birt ou bien d'une autre base ?

    si tu utilises une autre base as tu au moment de configuré la connexion tester cette connexion ? normalement tu doit obtenir connection sucessfull.

    sinon quand tu fais un select * from produitB cela te renvoie t'il un résultat ?
    ou comme pour ta jointure rien dans le preview
    Garry
    La connaissance c'est ce qu'il manque à tout homme

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Lorsque je parle de base test, c'est plutôt des tables que j'ai écrite pour tester et manipuler Birt.

    J'utilise Oracle comme sgbd et la connexion est bien établie. J'obtiens bien le connection sucessfull.

    Lorsque je fait la requête "select * from produitB", le résultat de la requête s'affiche bien sous le "Preview Results".

    J'ai testé ma jointure ma jointure sous sqlplus et celle-ci fonctionne correctement.

  4. #4
    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,

    Il faut faire attention.

    Le requêteur de BIRT n'accepte que du SQL normé puisque c'est une connexion JDBC. Si tu utilises des mots clefs spécifique à Oracle, ca fonctionnera beaucoup moins bien.

    Je pense que ton problème vient de là.

    Peux-tu poster ta requête ci-dessous ? (dans les balises [ CODE ] )

  5. #5
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Oui, j'ai écrit ma requête en sql comme sous Oracle.
    qu'entendez-vous par SQL normé?

    Voici ma requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT produitB.nom, produitB.qte, coutB.prix
    FROM produitB, coutB
    WHERE produitB.idproduit = coutB.idproduit
    J'obtiens bien les colonnes nom, qte et prix sous Previews Results mais ces dernières sont vides.

    Merci pour votre aide

  6. #6
    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
    Peut-être que tu ne fais pas ta requête sous le bon schéma

  7. #7
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    j'ai mis tous les schémas au champ prévu à cet effet.
    De plus, une requête simple comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *
    FROM produitB
    fonctionne correctement.

    De plus, la requête de jointure fonctionne correctement sous le mode commande sqlplus de Oracle. Elle me retourne le bon résultat.

  8. #8
    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
    C'est bizarre quand même.

    Et si tu les fais chacune indépendamment, tu as bien ta liste de produits ?

    Tu as combien d'enregistrements dans chaque table ? (C'est peut être une histoire de préférences de prévisualisation )

  9. #9
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'obtiens bien ma liste de produit avec la requête citée précédemment.

    Dans la table produit, j'ai 3 enregistrements. Dans la table cout, j'ai 6 enregistrements.

    J'ai aussi essayé de faire d'autres jointures avec d'autres tables et elles ne fonctionnent pas non plus. Aucune des jointures que je peux écrire ne fonctionne.

  10. #10
    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
    Etrange, peut-être que c'est seulement le Preview qui ne fonctionne pas (mais c'est bizarre quand même). As-tu essayé une génération complète ?

  11. #11
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'ai mis les résultats dans une table et à l'affichage la table est vide.
    Ma création de tables est
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    create table produitB (idproduit int, nom varchar(20), qte int, primary key(idproduit))
    create table coutB (idcout int, annee int, prix int, primary key(idcout), foreign key (produitB) references (produitB))
    mes insertions sont
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    insert into produitB values (1,'cd',2);
    insert into produitB values (2,'dvd',5);
    insert into produitB values (3,'bd',10);
    insert into coutB values(1,2003,1);
    insert into coutB values(2,2004,1);
    insert into coutB values(3,2003,2);
    insert into coutB values(4,2004,2);
    insert into coutB values(5,2003,3);
    insert into coutB values(6,2004,3);

    Je vous ai réecrit mes requêtes parce que mon sgbd est sur un serveur distant.

  12. #12
    Membre éprouvé Avatar de HelpmeMM
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juin 2007
    Messages : 473
    Points : 969
    Points
    969
    Par défaut
    euh c'est normale que tu insères que 3 valeurs dans ta table coutB alors que tu est censé en avoir 4 ? avec la clef étrangère ?
    Garry
    La connaissance c'est ce qu'il manque à tout homme

  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
    Hum...

    Ta table coutB se crée ?? Ta requête m'a tout l'air d'être fausse...

    D'ailleurs coutB n'a pas de colonne idproduit, alors je ne vois pas comment faire une jointure sur la colonne idproduit de chaque table (coutB et produitB) puisque l'une d'entre elles n'a pas de colonne idproduit.

  14. #14
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    désolé, j'ai mal recopié
    mes requêtes sont plutôt:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    insert into coutB values (1,2003,5,1);
    insert into coutB values (2,2004,6,1);
    insert into coutB values (3,2003,1,2);
    insert into coutB values (4,2004,2,2);
    insert into coutB values (5,2003,8,3);
    insert into coutB values (6,2004,7,3);
    et
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create table coutB (idcout int, annee int, prix int, idproduit int, primary key(idcout), foreign key (idproduit) references produitB)

  15. #15
    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
    Je pense que tu voulais faire ça :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create table coutB (idcout int, annee int, prix int, idproduit int, primary key(idcout), foreign key (idproduit) references produitB(idproduit))
    ... pour ta table coutB. Tu avais oublié une colonne tout simplement.

  16. #16
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup.
    L'erreur vient effectivement de la création de table coutB. Lors de la référence de la clef étrangère de idproduit de la table coutB, j'ai fait une référence à la table et non à la colonne de la table.

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

Discussions similaires

  1. [Hibernate 3] [Criteria] Faire une jointure avec Criteria
    Par bouchette63 dans le forum Hibernate
    Réponses: 30
    Dernier message: 07/06/2010, 17h54
  2. Réponses: 1
    Dernier message: 09/11/2006, 12h08
  3. faire une jointure sur des clés différentes
    Par phpaide dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/09/2006, 10h16
  4. Comment faire une jointure ?
    Par Terminator dans le forum Langage SQL
    Réponses: 12
    Dernier message: 16/10/2005, 13h26
  5. [CR9] faire une Jointure externe
    Par coldec dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 28/06/2005, 12h10

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