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

Reports Oracle Discussion :

[reports] comment créer une requete dynamiquement


Sujet :

Reports Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 31
    Points : 28
    Points
    28
    Par défaut [reports] comment créer une requete dynamiquement
    slt.
    j'ai un probleme avec reports 9i.
    je voudaris créer une requete manuellement à l'execution.
    je vais simplifier:
    j'ai un parametre utilisateur p_trimestre={1,2,3,4}
    j'ai une table ds ma BDD
    SITUATION
    les colonnes de la table sont :
    situation_trim1 varchar2
    situation_trim2 varchar2
    situation_trim3 varchar2
    situation_trim4 varchar2

    je voudrais afficher selon p_trimestre la colonne concernée.
    svp je suis vraiement à cour d'idée .
    aidez moi

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Selon p_trimestre, mais votre paramètre contient les 4 {1,2,3,4}

    S'il n'en contenait qu'un, vous pourriez vous en sortir avec un DECODE()
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    je voulais dire que p_trimestre peut avoir quatres valeurs 1 ou 2 ou 3 ou 4

    je deverais avoir :
    if p_trimestre = 1 then (curseur1)
    if p_trimestre = 2 then (curseur2)
    if p_trimestre = 3 then (curseur3)
    if p_trimestre = 4 then (curseur4)

    avec curseuri = select mes_données from ma_table
    where sit_trim1 = 'ma_valeur'


    pour tt i ds 1..4

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Tu crées un Paramètre P_WHERE VARCHAR2 (1000)
    Tu l'initialises dans le trigger AFTER_PARAMETER_REPORT (syntaxe pas sure)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    IF :parameter.p_trimestre = 1
    THEN
    :Parameter.p_where := ' sit_trim1 = 1';
    ELSE
    :Parameter.p_where := ' sit_trim2 = 1';
    END IF;
    Ton query devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT col1....
    FROM MATABLE
    WHERE &P_WHERE
    PS : Je crois que pour que le query compile, il faut quelque chose dans P_WHERE (mets 1=1 par defaut dans ce cas)
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Merci bien pour l'aide.
    cette idée est tré bien .
    j'ai utilisé le décode que tu ma conseillé et ça marche lui aussi
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select  mes_donnees 
    FROM ma_table
    WHERE mes_conditions
    and     decode (:p_trimestre,
            '1', ma_table.sit_trim1,
            '2',  ma_table.sit_trim2,
            '3',  ma_table.sit_trim3,
            '4' , ma_table.sit_trim4)  in ('J', 'C', 'E', '')
    et là aussi ça marche à merveille.

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

Discussions similaires

  1. [RaveReport] Comment créer une page dynamiquement
    Par bullrot dans le forum C++Builder
    Réponses: 1
    Dernier message: 18/12/2007, 16h33
  2. [LINQ] - créer une requete dynamique (pas en dur)
    Par DonJR dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 08/06/2007, 10h30
  3. [LINQ] - créer une requete dynamique (pas en dur)
    Par DonJR dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 08/06/2007, 10h30
  4. [CR11] comment créer une requete manuelle ?
    Par c_moi_c_moi dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/05/2006, 22h35
  5. Comment créer une requete
    Par Raphael39 dans le forum Access
    Réponses: 21
    Dernier message: 08/01/2006, 19h36

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