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

Langage SQL Discussion :

Aide pour ma requête


Sujet :

Langage SQL

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

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut Aide pour ma requête
    * Bonjour, *

    Voici ma table :
    | courbes | Nr_Courbes | Description | Tags |
    | Test 1 | 0 | Visu Cycle | P0_Cycle |
    | Test 1 | 1 | Visu Cycle | P1_Cycle |
    | Test 1 | 2 | Visu Cycle | P2_Cycle |
    | Test 2 | 0 | Visu Etat | P0_etat |
    | Test 2 | 1 | Visu Etat | P1_etat |
    | Test 2 | 2 | Visu Etat | P2_etat |
    | Test 2 | 3 | Visu Etat | P3_etat |
    Je voudrais faire une requête SQL pour avoir :
    | courbes | Description | Tag0 | Tag1 | Tag2 | Tag3 |
    | Test 1 | Visu Cycle | P0_Cycle | P1_Cycle | P2_Cycle |........... |
    | Test 2 | Visu Etat | P0_etat | P1_etat | P2_etat | P3_etat |
    Qui peut m'aider ?

    * Merci d'avance. *

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 501
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select distinct ref.courbes, ref.Description, tag0.Tags, tag1.Tags, tag2.Tags, tag3.Tags
    from a_table ref
     left join a_table tag0 on ref.courbes=tag0.courbes and tag0.Nr_Courbes=0
     left join a_table tag1 on ref.courbes=tag1.courbes and tag1.Nr_Courbes=1
     left join a_table tag2 on ref.courbes=tag2.courbes and tag2.Nr_Courbes=2
     left join a_table tag3 on ref.courbes=tag3.courbes and tag3.Nr_Courbes=3

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

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    J'ai essayé sous access 97

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT  ref.Description,Tag0.TAG, tag1.Tags, tag2.Tags, tag3.Tags
    FROM WINCC_COURBE ref
      LEFT JOIN  WINCC_COURBE tag0 ON ref.courbes=tag0.courbes AND tag0.Nr_Courbes=0
      LEFT JOIN  WINCC_COURBE tag1 ON(ref.courbes=tag1.courbes AND tag1.Nr_Courbes=1
      LEFT JOIN  WINCC_COURBE tag2 ON ref.courbes=tag2.courbes AND tag2.Nr_Courbes=2
      LEFT JOIN  WINCC_COURBE tag3 ON ref.courbes=tag3.courbes AND tag3.Nr_Courbes=3;
    Mais quand je veux enregistrer, access affiche "Erreur de syntaxe (opérateur absent) dans l'expression ". "

    Je pense qu'il doit manquer des parenthèses. Mais je ne sais pas où les mettre.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Ou que vous avez une parenthèse en trop

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 817
    Points
    17 817
    Par défaut
    Faites une recherche sur le mot-clef PIVOT sur ce même forum.

    Par contre, Access 97, il serait peut-être temps d'envisager quelque chose d'un peu plus récent non ?

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

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Waldar Voir le message

    Par contre, Access 97, il serait peut-être temps d'envisager quelque chose d'un peu plus récent non ?
    Oups, j'utilise Acces 2003

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 081
    Points : 30 828
    Points
    30 828
    Par défaut
    Access réclame des parenthèses autour des jointures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT DISTINCT  ref.Description,Tag0.TAG, tag1.Tags, tag2.Tags, tag3.Tags
    FROM (((WINCC_COURBE ref
      LEFT JOIN  WINCC_COURBE tag0 
        ON ref.courbes=tag0.courbes AND tag0.Nr_Courbes=0)
      LEFT JOIN  WINCC_COURBE tag1 
        ON ref.courbes=tag1.courbes AND tag1.Nr_Courbes=1)
      LEFT JOIN  WINCC_COURBE tag2 
        ON ref.courbes=tag2.courbes AND tag2.Nr_Courbes=2)
      LEFT JOIN  WINCC_COURBE tag3 
        ON ref.courbes=tag3.courbes AND tag3.Nr_Courbes=3;
    Mais il autorise aussi le mot clé PIVOT qui, s'il n'est pas vraiment conforme avec la philosophie du langage SQL, est quand même bien pratique pour résoudre ce type de problème.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Access réclame des parenthèses autour des jointures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT DISTINCT  ref.Description,Tag0.TAG, tag1.Tags, tag2.Tags, tag3.Tags
    FROM (((WINCC_COURBE ref
      LEFT JOIN  WINCC_COURBE tag0 
        ON ref.courbes=tag0.courbes AND tag0.Nr_Courbes=0)
      LEFT JOIN  WINCC_COURBE tag1 
        ON ref.courbes=tag1.courbes AND tag1.Nr_Courbes=1)
      LEFT JOIN  WINCC_COURBE tag2 
        ON ref.courbes=tag2.courbes AND tag2.Nr_Courbes=2)
      LEFT JOIN  WINCC_COURBE tag3 
        ON ref.courbes=tag3.courbes AND tag3.Nr_Courbes=3;

    J'ai toujours une erreur. Mais pas la même "Expression de jointure non supporté"

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 790
    Points : 52 813
    Points
    52 813
    Billets dans le blog
    5
    Par défaut
    1) introduisez vos alias avec le mot clef AS (exemple : WINCC_COURBE AS ref)
    2) une jointure doit avoir le mot clef INNER ou OUTER (dans votre cas : LEFT OUTER JOIN)

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Aide pour une requête et left join
    Par Lolo19 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/08/2005, 08h09
  2. J'ai besoin de votre aide pour une requête
    Par ovdz dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/05/2005, 11h42
  3. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 02h40
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38

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