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

SSIS Discussion :

Modification de Query SQL dans le Query Builder


Sujet :

SSIS

  1. #1
    Membre expérimenté
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2011
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Février 2011
    Messages : 428
    Points : 1 525
    Points
    1 525
    Par défaut Modification de Query SQL dans le Query Builder
    Bonjour,

    Après des recherches sur internet et sur le site, je n'ai malheureusement pas trouvé réponse à ma(mes) question(s). Je me permet donc de demander votre aide

    Nouveau sur SSIS, je cherche des informations précises suite à un problème de query à travers ce dernier. Ma situation est comme suit:

    Je désire récupérer des données depuis une base MySQL. J'ai pour ce fait installé le dernier Driver ODBC disponible sur le site mysql.com. J'y accède normalement par un connecteur ADO NET source et utilise "SQL command" pour le Data access mode.

    La query que je souhaite ensuite effectuer est la suivante:

    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
    SELECT
    activity_log.al_comment,
    activity_log.al_billable,
    activity_log.al_onsite,
    activity_log.al_duration,
    user_proj_act_bind.upab_rate,
    activity_bind.ab_rate,
    user_bind.ub_rate,
    clients.clnt_tax,
    projects.p_forfait,
    projects.p_onsitecharge,
    projects.p_nbdays
     
    FROM
    projects
    LEFT JOIN clients ON (projects.p_client_id = clients.clnt_id),
    activity_log
    LEFT JOIN user_bind ON  (user_bind.ub_id_p = activity_log.al_project_id)
    LEFT JOIN activity_bind ON (activity_bind.ab_id_a = activity_log.al_activity_id) AND (activity_bind.ab_id_p = activity_log.al_project_id)
    LEFT JOIN user_proj_act_bind ON (user_proj_act_bind.upab_id_u = activity_log.al_user_id) AND (user_proj_act_bind.upab_id_a = activity_log.al_activity_id) AND (user_proj_act_bind.upab_id_p = activity_log.al_project_id)
     
    WHERE
    projects.p_id = activity_log.al_project_id
    J'ai testé cette requête à travers MySQL Workbench. Elle fonctionne et me retourne les données dont j'ai besoin.

    Après avoir entré cette requête dans le connecteur ADO NET source, je désire faire une preview... SQL Server BI Dev Studio cesse alors de fonctionner (not responding). J'ai tout de même patienté bien quelques minutes.

    Je me suis alors demandé s'il s'agissait du nombre de lignes dans ma base : Je n'en ai pourtant qu'environs 11000.

    Je suis ensuite passé par le query builder.
    La requête qu'il me crée lorsque je la valide est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT     activity_log.al_comment, activity_log.al_billable, activity_log.al_onsite, activity_log.al_duration, user_proj_act_bind.upab_rate, activity_bind.ab_rate, 
                          user_bind.ub_rate, clients.clnt_tax, projects.p_forfait, projects.p_onsitecharge, projects.p_nbdays
    FROM         { oj projects LEFT OUTER JOIN
                          clients ON projects.p_client_id = clients.clnt_id }, { oj { oj { oj activity_logL LEFT OUTER JOIN
                          user_bind ON user_bind.ub_id_p = al_project_id } LEFT OUTER JOIN
                          activity_bind ON activity_bind.ab_id_a = al_activity_id AND activity_bind.ab_id_p = al_project_id } LEFT OUTER JOIN
                          user_proj_act_bind ON user_proj_act_bind.upab_id_u = al_user_id AND user_proj_act_bind.upab_id_a = al_activity_id AND 
                          user_proj_act_bind.upab_id_p = al_project_id }
    WHERE     (projects.p_id = activity_log.al_project_id)
    Mis à part le côté inesthétique, lorsque j'effectue une preview, j'obtiens une erreur en retour de la part de mon connecteur ODBC. J'imagine donc aisément que certaines parties de la query ne sont pas supportées par ce connecteur.

    Mes questions sont donc les suivantes:

    - N'ayant jamais eu de problèmes avant avec le connecteur ODBC, celui-ci pourrait-il être en cause pour ce qui est du plantage de l'interface de dev ?
    - Dois-je réécrire une requête SQL compatible SQL Server ET MySQL d'une autre façon afin qu'elle ne soit pas modifiée par le query builder (j'entends par là laisser tomber mon imbrication de left join) ?
    - Aurais-je laissé passer une erreur dans ma requête, ce qui causerait ce couac ?

    Merci d'avance pour votre aide !

    Edit : Bon pour la requête de base, énorme erreur de ma part dans ma requête... Et j'ai fait péter les plombs à mon driver ODBC... Toujours revérifier ses jointures...

    Cependant, je reste preneur d'une solution pour l'empêcher de tout changer l'écriture de notre query par le query builder

    Mes excuses pour le dérangement

  2. #2
    Membre du Club
    Homme Profil pro
    IED décisionnel
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IED décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Points : 40
    Points
    40
    Par défaut
    bonjour,

    essaye de lancer ta requête dans le flux de contrôle dans une tache de requête SQL tu la modifie pour faire un insert de select vers une table identique sur ton serveur sql que tu auras créé pour le test

    si tes lignes son correctement insérées cela ne viens pas de ODBC
    si cela ne fonctionne pas le message d'erreur sera peux être un peux plus parlant

    voici la requête:
    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
    32
    33
    34
    35
    36
    37
    38
     
    INSERT INTO TaTable
    (
    al_comment,
    al_billable,
    al_onsite,
    al_duration,
    upab_rate,
    ab_rate,
    ub_rate,
    clnt_tax,
    p_forfait,
    p_onsitecharge,
    p_nbdays
    )
    SELECT
    activity_log.al_comment,
    activity_log.al_billable,
    activity_log.al_onsite,
    activity_log.al_duration,
    user_proj_act_bind.upab_rate,
    activity_bind.ab_rate,
    user_bind.ub_rate,
    clients.clnt_tax,
    projects.p_forfait,
    projects.p_onsitecharge,
    projects.p_nbdays
     
    FROM
    projects
    LEFT JOIN clients ON (projects.p_client_id = clients.clnt_id),
    activity_log
    LEFT JOIN user_bind ON  (user_bind.ub_id_p = activity_log.al_project_id)
    LEFT JOIN activity_bind ON (activity_bind.ab_id_a = activity_log.al_activity_id) AND (activity_bind.ab_id_p = activity_log.al_project_id)
    LEFT JOIN user_proj_act_bind ON (user_proj_act_bind.upab_id_u = activity_log.al_user_id) AND (user_proj_act_bind.upab_id_a = activity_log.al_activity_id) AND (user_proj_act_bind.upab_id_p = activity_log.al_project_id)
     
    WHERE
    projects.p_id = activity_log.al_project_id

Discussions similaires

  1. Souci avec la structure du SQL dans un Query
    Par Heremion dans le forum Bases de données
    Réponses: 6
    Dernier message: 12/11/2014, 19h04
  2. [2008] Actualiser les modifications de BD SQL dans Access
    Par HoudaElm dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 31/08/2013, 13h03
  3. [MySQL] Query SQL > réduire un nombre dans une colonne de 20% ?
    Par lelandais1 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/03/2010, 11h41
  4. Comment écrire plusieurs requêtes dans Query.Sql
    Par hayat2 dans le forum Bases de données
    Réponses: 11
    Dernier message: 03/06/2009, 10h33
  5. Requête SQL dans un CL via Query Manager
    Par nourdine8 dans le forum AS/400
    Réponses: 10
    Dernier message: 13/11/2007, 13h15

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