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.5][SQL] Requete complexe


Sujet :

BIRT

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut [2.5][SQL] Requete complexe
    Bonjour,

    J'ai défini dans mon dataset une requête complexe contenant des tables temporaires, des insert dans ces tables temporaires et un select finale qui me renvoie tous les colonnes voulues.

    Quand je fais un preview de ce dataSet, Birt me dit que ma requête ne renvoie rien alors qu'elle marche parfaitement ailleur.

    je sais que je pourrai créer une procédure stocké mais je voudrai trouver une solution sans.

    Quelqu'un a une idée ?

    Merci d'avance

  2. #2
    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
    Bonjour,

    Peut-on avoir la base de ta requête svp ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Voila grosso modo ma requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    CREATE TABLE #CurrentDriverScoring (
    	sGroupName VARCHAR(255),
    	sDriverName VARCHAR(255),
    	fScore FLOAT,
    	...
    )
     
    INSERT INTO #CurrentDriverScoring
    SELECT   
    	drgn.sname, 
    	t.sname + ' (' + CAST(t.idriverid AS varchar(5)) + ')',
       ...
     
    CREATE TABLE #DriverScoringM1 (
    	sGroupName VARCHAR(255),
    	sDriverName VARCHAR(255),
    	...
    )
     
    INSERT INTO #DriverScoringM1
    SELECT   
    	drgn.sname, 
    	t.sname + ' ('+CAST(t.idriverid AS varchar(5))+')',
     ...
     
     
    SELECT 
     * 
    FROM #CurrentDriverScoring C
    LEFT JOIN #DriverScoringM1 M1 ON C.sDriverName = M1.sDriverName

  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
    Euh... tu travaille sur quel base de données ?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut ?
    Que je comprenne bien.

    Vous avez 1 Dataset qui execute le SQL qui crée des tables temporaires et 1 2e dataset qui recupère ces tables temp ?

    Vous utilisez quelle base et quel pilote JDBC pour cette base?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je travaille sur un SQL Server 2005.

    J'exécute l'ensemble de ma requête sur un seul dataset.

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut ?
    Et vous utilisez quoi comme pilote?

    Le JDBC 1.1 de Microsoft?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    J'utilise la version 2.0 de Microsoft

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut ok
    D'accord.

    Faudrait vérifier si ce pilote supporte les tables temps ou encore les proc stoc avec tables temp.

    enfin , le pilote JDBC Microsoft est reputé instable et ayant de gros soucis de performance face à des DataDirect par exemple ( vous pouvez rechercher ceci sur Google ).

    BIRT Fonctionne très bien avec les proc stoc tables temporaires via le pilote Actuate ou Datadirect pour SQL Server dans sa version commerciale.

    Jamais testé avec le MS.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    J'ai testé ma requete au sein d'une procédure stockée avec le pilote de Microsoft. Elle fonctionne.

    J'aimerai pourtant l'utiliser hors d'une procédure stockée.

    Est ce que vous savez si avec d'autres sgbd, ce genre de requête fonctionne ?

    Je vais tester un autre pilote mais je suis pas très convaincu que le pb vienne vraiment de la.

    Merci pour votre aide

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut BIRT
    BIRT attend un résultat tabulaire ( formaté ). A partir du moment ou le pilote supporte et récupère ce Resultset correctement et le passe à BIRT , ça devrait marcher.

    Sinon, j'ai rarement vu un usage des tables temporaires de cette façon hors SQL Server.

  12. #12
    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
    Une question est-ce que le mot clef WITH existe sous SQL Server comme pour ORACLE ?

    Si oui c'est ta solution

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    D'après la doc de MSDN, l'expression WITH semble exister.

    Par contre je connais pas du tout. Peux tu m'en dire un peu plus sur ça ?

  14. #14
    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
    Petit cours de SQL sur les tables temporaires :
    Citation Envoyé par SQL
    WITH TMP AS (ma requete) SELECT B*,T.* FROM TB B, TMP T WHERE T.ID=B.ID
    Tu comprends la suite

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Merci ta solution marche parfaitement.

    Plus qu'un dernier problème avec les bordures d'un bart chart que je veux modifier dynamiquement et j'aurai fini mon rapport.

    Merci encore pour l'aide

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

Discussions similaires

  1. sql mixe de deux requetes complexes
    Par Alex35 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 07/11/2007, 12h44
  2. requete complexe sql server
    Par adil_math2006 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 14/06/2007, 11h39
  3. [SQL] Erreur de syntaxe sur requete complexe
    Par tiger33 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/11/2006, 10h54
  4. [SQL Débutant] Requete complexe
    Par pi05 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/08/2006, 13h00
  5. [SQL] requetes inbriquées un peu plus complexe.
    Par Devil666 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2005, 12h06

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