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 :

[2.2.0] Générer dynamiquement une requête en fonction d'une autre


Sujet :

BIRT

  1. #1
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut [2.2.0] Générer dynamiquement une requête en fonction d'une autre
    Bonjour à tous,

    Idéalement voici ce que j'aimerais faire :

    Un utilisateur saisi un paramèter au rapport et grace à ce paramètre je vais chercher des données dans une table :
    select col1,col2 from matableparam where param= ? (avec ? le paramètre saisi)

    ensuite j'aimerais exécuter une seconde requête qui serait contruite grâce à col1 et col2 de la précédente (res1):

    select res1.col1 from res1.col2

    Savez vous sil est possible de faire ça avec Birt ?
    Car je n'y arrive pas.

    Cordialement,
    Pensez à la fonction Recherche

  2. #2
    Membre habitué Avatar de GAEREL
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 160
    Points : 147
    Points
    147
    Par défaut
    Tu dois utiliser les "Cascading parameters".

    Report Parameters / New cascading parameter.

    Cordialement
    Fred

  3. #3
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Je n'ai pas réussi à le faire.

    Ce que je voudrais faire (en plus clair ^^) c'est

    select ? , ? from ? where ? = ?

    C'est possible ?
    Pensez à la fonction Recherche

  4. #4
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    En théorie oui,

    Mais pour chaque ? tu devras déclarer un paramètre.

    Cdt, Lazarel

  5. #5
    Membre habitué Avatar de GAEREL
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 160
    Points : 147
    Points
    147
    Par défaut
    houla ! C'est violent !
    tu veux faire une requête 100% paramètrable !!! Je ne suis même pas sûr que ce soit possible mais en gros :

    Ta requête va devenir quelque chose comme ça:
    (avant) SELECT ?, ? FROM ? WHERE ? = ?
    ce qui correspond à
    SELECT nom_colonne1, nom_colonne2 FROM nom_table1 WHERE nom_colonne3 = valeur 1

    Tu as donc 3 types de paramètres (3 nom de colonnes, 1 nom de table, 1 valeur)

    il te faut une requête primaire qui te renvoie toutes les combinaisons possibles des ces 5 paramètres (ce qui va être monstrueux...)

    Pourrais tu expliquer clairement ton besoin (sans parler de la technique) il i a peut être une solution plus simple ...

    Cordialement
    Fred

  6. #6
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Citation Envoyé par GAEREL Voir le message
    houla ! C'est violent !
    tu veux faire une requête 100% paramètrable !!! Je ne suis même pas sûr que ce soit possible mais en gros :

    Ta requête va devenir quelque chose comme ça:
    (avant) SELECT ?, ? FROM ? WHERE ? = ?
    ce qui correspond à
    SELECT nom_colonne1, nom_colonne2 FROM nom_table1 WHERE nom_colonne3 = valeur 1

    Tu as donc 3 types de paramètres (3 nom de colonnes, 1 nom de table, 1 valeur)

    il te faut une requête primaire qui te renvoie toutes les combinaisons possibles des ces 5 paramètres (ce qui va être monstrueux...)

    Pourrais tu expliquer clairement ton besoin (sans parler de la technique) il i a peut être une solution plus simple ...

    Cordialement
    Fred
    Exactement ça et c'est violent

    Nous avons déjà contourné le besoin mais comme j'avais posté je voulais voir si c'était possible.

    Rien qu'en faisant une requête simple genre :

    select top 10 customerid from ?

    j'obtiens un big message d'erreur. (en PJ)

    Je suppose donc que ce n'est pas possible.

    (J'attends une confirmation avant de clore le topic)

    En tout cas merci de vos réponses.

    Cdt,
    Pensez à la fonction Recherche

  7. #7
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    Le mieux, c'est de mettre en place une stratégie sur l'utilisation de QueryText c'est à dire la requête elle-même.

    En fonction des valeurs de tes paramètres, tu choisiras ou non d'utiliser tel ou tel requête.

  8. #8
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    ouais mais lourd à faire.

    en conclusion merci pour vos réponses, le problème a été contourné à la base et ne semble donc pas directement possible.
    Pensez à la fonction Recherche

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/02/2009, 10h13
  2. passer d'une requêtes SGL directe en une requête normale
    Par jenniferIUP dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/02/2009, 08h26
  3. Réponses: 19
    Dernier message: 03/02/2009, 10h52
  4. [Oracle 10G] Filtrer une requête en fonction d'une autre table
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 4
    Dernier message: 27/04/2008, 04h49
  5. Réponses: 8
    Dernier message: 08/06/2007, 10h42

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