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

Requêtes et SQL. Discussion :

Comment faire lorsque la requete est trop longue ?


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Points : 12
    Points
    12
    Par défaut Comment faire lorsque la requete est trop longue ?
    Salut à tous

    J'ai une méga requete SQL a entrer dans access, le problème, c'est qu'elle est trop longue pour tenir que sur une ligne.

    Comment faire pour arranger le problème ?

    j'avais vu la technique du & _ , mais cela n'a pas l'air de fonctionner

    Merci !

  2. #2
    Membre chevronné

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    pouvez-vous montrer votre requete pour lui faire subir un lifting ?
    Nous avons d'excellents chirurgiens

    cordialement,

    philippe

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Points : 12
    Points
    12
    Par défaut
    ola, vous savez pas à qui vous avez affaire lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT tbl_civilite.libel_civilite, tbl_particulier.nom_part, tbl_particulier.prenom_part, tbl_particulier.email_part, tbl_particulier.fax_priv_part
    FROM (tbl_cp INNER JOIN (tbl_profession INNER JOIN (tbl_situationfamilialle INNER JOIN (tbl_situation INNER JOIN (tbl_civilite INNER JOIN tbl_particulier ON tbl_civilite.num_civilite = tbl_particulier.[num_civilite#]) ON tbl_situation.num_situation = tbl_particulier.[num_situation#]) ON tbl_situationfamilialle.num_situationfam = tbl_particulier.[num_situationfam#]) ON tbl_profession.num_prof = tbl_particulier.[num_prof#]) ON tbl_cp.num_cp = tbl_particulier.[num_cp#]) INNER JOIN (tbl_compagnie INNER JOIN tbl_particulier_compagnie ON tbl_compagnie.num_compagnie = tbl_particulier_compagnie.[num_compagnie#]) ON tbl_particulier.num_part = tbl_particulier_compagnie.[num_part#]
    WHERE (((tbl_particulier.num_part)<>0))
    GROUP BY tbl_civilite.libel_civilite, tbl_particulier.nom_part, tbl_particulier.prenom_part, tbl_particulier.email_part, tbl_particulier.fax_priv_part;
    J'ai fait la requete sous le module requetes d'access, en QBE, pour etre sur que je n'oublie rien, et apres, je l'ai collé en code, je l'avoue, c'est fort gras, mais bon..

    Merci de regarder ça !

  4. #4
    Membre chevronné

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    re bonjour,

    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
    39
    40
    41
    42
    43
    44
    45
     
    SELECT
     tbl_civilite.libel_civilite,
     tbl_particulier.nom_part,
     tbl_particulier.prenom_part,
     tbl_particulier.email_part,
     tbl_particulier.fax_priv_part
    FROM
     (tbl_cp
    INNER JOIN
     (tbl_profession
    INNER JOIN
     (tbl_situationfamilialle
    INNER JOIN
     (tbl_situation
    INNER JOIN
     (tbl_civilite
    INNER JOIN
     tbl_particulier
     ON
      tbl_civilite.num_civilite = tbl_particulier.[num_civilite#])
     ON
      tbl_situation.num_situation = tbl_particulier.[num_situation#])
     ON
      tbl_situationfamilialle.num_situationfam = tbl_particulier.[num_situationfam#])
     ON
      tbl_profession.num_prof = tbl_particulier.[num_prof#])
     ON
      tbl_cp.num_cp = tbl_particulier.[num_cp#])
    INNER JOIN
     (tbl_compagnie
    INNER JOIN
     tbl_particulier_compagnie
     ON
      tbl_compagnie.num_compagnie = tbl_particulier_compagnie.[num_compagnie#])
     ON
      tbl_particulier.num_part = tbl_particulier_compagnie.[num_part#]
    WHERE
     (((tbl_particulier.num_part)<>0))
    GROUP BY
     tbl_civilite.libel_civilite,
     tbl_particulier.nom_part,
     tbl_particulier.prenom_part,
     tbl_particulier.email_part,
     tbl_particulier.fax_priv_part;
    la requete retourne les champs que de 2 tables qui sont liées directement par un inner join (tbl_civilite.num_civilite = tbl_particulier.[num_civilite#]).

    Est-il utile de faire des jointures avec les autres tables ?

    pour info, pourquoi y'a t'il un <#> à la fin de certains champs ?

    Philippe

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Points : 12
    Points
    12
    Par défaut
    ce sont des clés étrangères les " # " ( j'ai appris à les différencier comme ça en cours )

    Je peux mettre tout ca sur une seule ligne et c'est pareil que ce que je vous avais donné ?

    merci le lifteur !

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Points : 12
    Points
    12
    Par défaut
    Mais je comprend pas pourquoi dans le code d'access, on peut pas faire une requete sur plusieurs lignes ??

  7. #7
    Membre chevronné

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    re bonjour,

    J'ai pas lifté encore, j'ai étalé pour mieux voir ...

    On peut peut être allier la solution de cbleas et une compression initiale en enlevant le code inutile (enfin j'espère )

    Voici le résultat à main levée du lifting, à vérifier si ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT T2.libel_civilite,T1.nom_part,T1.prenom_part,T1.email_part,T1.fax_priv_part FROM tbl_particulier T1 INNER JOIN tbl_civilite T2 ON T1.[num_civilite#] = T2.num_civilite WHERE T1.num_part<>0 GROUP BY T2.libel_civilite,T1.nom_part,T1.prenom_part,T1.email_part,T1.fax_priv_part;
    281 caractères au lieu de 1023...

    dans l'espoir que ça vous plaise...

    Philippe

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/06/2007, 16h13
  2. Réponses: 1
    Dernier message: 11/04/2007, 16h11
  3. [VB.net]Requete Insert trop longue?
    Par Hakki dans le forum Accès aux données
    Réponses: 7
    Dernier message: 24/10/2006, 10h06
  4. Erreur Delphi "La requete est trop complexe"
    Par Chimere dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/06/2006, 11h24
  5. [Conversion]Comment faire pour couper un Double trop long?
    Par dessinateurttuyen dans le forum Général Java
    Réponses: 1
    Dernier message: 13/11/2005, 02h22

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