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.1] Création d'une requete SQL selon paramêtre.


Sujet :

BIRT

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [2.2.1] Création d'une requete SQL selon paramêtre.
    Bonjour, malgré quelques recherches, je n'ai pas trouvé réponse à ma question (il y aurait bien quelque chose a faire avec les "Properties Binding"). Voila, j'ai un rapport basique avec globalement comme entrée "possible" : un nom de machine et 2 dates qui remontent les informations sur cette machine entre les 2 dates. Cependant, j'aimerai changer cela:
    • si une seule date: avoir à partir ou jusqu’à cette date ces informations.
    • si pas de date toutes les informations.
    • si pas de nom de machine: toutes les machines.


    Bref, globalement le travail se fait sur la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select INFOS
    from TABLE_INFO
    where (MACHINE like ?)
    	and DATE between ? and ?
    order by DATE desc
    Les paramètres sont créés comme "report parameters" et j'autorise à ce qu'ils soient "null". Le problème étant que si je ne rentre pas de date (enfin "null" à la place) ma requête n'a pas de sens, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	and DATE between ? and ?
    devant tout simplement ne pas exister.

    J’aimerai construire ma requête selon l’état de mes paramètres dynamiques tout simplement.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 229
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Utilise les fonctions SQL de ton moteur SGBD pour simuler le "null" sur tes dates et le remplacer par '01/01/'1900' par exemple pour date1 et '31/12/2099' par exemple pour date2

    J'espere que cela pourra t'aider

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Je pensais plutôt une cinématique du genre:
    _ lancement du rapport
    _ saisie des paramètres de date , machine (valeur ou null)
    _ génération de la bonne requête selon les paramètres
    _ requête en base
    _ génération du rapport

    J'ai vu sur certains sites que l'on pouvait générer sa requête, mais pas avec des paramètres qui conditionne cette génération.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 229
    Points : 137
    Points
    137
    Par défaut
    Je me suis mal exprimé, construis ta requete dans BIRT de façon à ce qu'elle gère le null sur tes parametres.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select INFOS
    from TABLE_INFO
    where (MACHINE like ?)
    	and DATE between ifnull(?,'01/01/1900') and ifnull(?,'31/12/2099')
    order by DATE desc

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Humm, il me reste encore a savoir construire correctement vis à vis de la cinématique correctement ma requête SQL, chose qui m'est inconnue pour le moment.

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Et bien, en cherchant un peu plus; j'ai http://business-intelligence.develop...s_comportement

    Allons donc tester cela, je fermerai le topic si ça se passe bien.

  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
    Tu peux créer ta requête SQL dynamiquement avec BIRT c'est dans la FAQ

Discussions similaires

  1. [AC-2010] une date change quand je bascule de sql en mode création dans une requete
    Par idiot dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/06/2011, 07h52
  2. Problème création d'une requete SQL (categorie,sous-cat)
    Par Raideman dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/11/2006, 15h23
  3. création d'une requete sql
    Par tounsi dans le forum Oracle
    Réponses: 15
    Dernier message: 22/02/2006, 16h12
  4. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51
  5. Une requete SQL unpeux difficile !!
    Par nil dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/03/2004, 12h32

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