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 :

Requête SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Avril 2008
    Messages
    1 133
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 133
    Par défaut Requête SQL
    Bonsoir à tous!

    Débutant depuis peu dans l'utilisation des requêtes SQL dans Windev, je galère depuis 2 heures sur la méthode pour récupérer plusieurs informations dans plusieurs tables en une seule fois.

    Malheuresement j'ai les doublons dans la table malgré l'essai avec des INNER JOIN

    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
    SELECT 	Contrat.IDContrat,
    		Contrat.NumClient,
    		Contrat.Numero_police,
    		Contrat.Numero_policeAssureur,
    		Contrat.periode,
    		Contrat.DateEffet,
    		Contrat.DateEcheance,
    		Contrat.Duree,
    		Contrat.exempte_taxes,
     
    		Client.Raison_sociale,
    		Client.NomPrenom,
     
    		Avenant.IDAvenant,
    		Avenant.Datefin,
     
    		Avenant_ObjetDuRisqueAuto.IDObjetDuRisqueAuto,
     
    		ObjetDuRisqueAuto.Num_chassis,
    		ObjetDuRisqueAuto.Immatriculation
     
    FROM Contrat
     
    JOIN Client ON (Client.NumClient=Contrat.NumClient)
    JOIN Avenant ON (Avenant.IDContrat=Contrat.IDContrat)
    JOIN Avenant_ObjetDuRisqueAuto ON (Avenant_ObjetDuRisqueAuto.IDAvenant=Avenant.IDAvenant)
    JOIN ObjetDuRisqueAuto ON (ObjetDuRisqueAuto.IDObjetDuRisqueAuto=Avenant_ObjetDuRisqueAuto.IDObjetDuRisqueAuto)
    WHERE Numero_police LIKE %1
    AND Numero_policeAssureur LIKE %2
    AND Raison_sociale LIKE %3
    AND NomPrenom LIKE %4
    AND Num_chassis LIKE %5
    AND Immatriculation LIKE %6
    Vous pouvez voir sur l'image que les Id apparaissent en doublon!

    Pouvez vous m'aiguiller ?

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    bonjour

    utilisez "distinct" apres le select
    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
    SELECT DISTINCT	Contrat.IDContrat,
    		Contrat.NumClient,
    		Contrat.Numero_police,
    		Contrat.Numero_policeAssureur,
    		Contrat.periode,
    		Contrat.DateEffet,
    		Contrat.DateEcheance,
    		Contrat.Duree,
    		Contrat.exempte_taxes,
     
    		Client.Raison_sociale,
    		Client.NomPrenom,
     
    		Avenant.IDAvenant,
    		Avenant.Datefin,
     
    		Avenant_ObjetDuRisqueAuto.IDObjetDuRisqueAuto,
     
    		ObjetDuRisqueAuto.Num_chassis,
    		ObjetDuRisqueAuto.Immatriculation
     
    FROM Contrat
     
    JOIN Client ON (Client.NumClient=Contrat.NumClient)
    JOIN Avenant ON (Avenant.IDContrat=Contrat.IDContrat)
    JOIN Avenant_ObjetDuRisqueAuto ON (Avenant_ObjetDuRisqueAuto.IDAvenant=Avenant.IDAvenant)
    JOIN ObjetDuRisqueAuto ON (ObjetDuRisqueAuto.IDObjetDuRisqueAuto=Avenant_ObjetDuRisqueAuto.IDObjetDuRisqueAuto)
    WHERE Numero_police LIKE %1
    AND Numero_policeAssureur LIKE %2
    AND Raison_sociale LIKE %3
    AND NomPrenom LIKE %4
    AND Num_chassis LIKE %5
    AND Immatriculation LIKE %6
    et pourquoi ne pas utiliser STARTING WITH ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE Numero_police STARTING WHITH '1'
    olivier

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    et pourquoi ne pas utiliser STARTING WITH ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE Numero_police STARTING WHITH '1'
    olivier
    Euh... c'est du spécifique Windev, ce STARTING WITH ?

    Et dans le cas présent, j'ai plutôt l'impression que les %x représentent des paramètres donnés par le programme Windev qui lance la requête.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    je n'avais pas vu WinDev

    sans la faute d'orthographe, c'est du SQL vers ??

    a+
    olivier

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    sans la faute d'orthographe, c'est du SQL vers ??
    Pas compris !

    Si j'en crois la liste des mots réservés du langage SQL publiée par SQLPro, "STARTING" n'en fait pas partie. Et je n'ai jamais vu encore cette instruction qui existe donc peut-être spécifiquement dans un SGBD mais n'est probablement du SQL normalisé.
    Ou alors il s'agit de "START WITH" qui figure dans le livre de SQLPro et qui concerne l'auto-incrémentation ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 18
    Par défaut
    Bonjour, il faudrait donner les clés primaires de vos tables. A mon avis la requête ne va pas être très performante, si il y a peu de données ça ira sinon...

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

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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