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 :

Problème de commande SQL


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    INSA Centre Val de Loire
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : INSA Centre Val de Loire

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Problème de commande SQL
    Bonjour,
    Je cherche a avoir le nom des sommets qui se trouve au népal mais qui n'on pas de frontière avec la chine.

    Voila ma table 'localisation'
    nom_sommet	pays
    Evrest	        Népal
    Evrest	        Chine
    Manaslu	        Népal
    Hidden Peak	Chine
    Hidden Peak	Pakinstant
    Ce qui devrais donner: 'Manaslu'

    Voila mes lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT nom_sommet
    FROM localisation
    WHERE pays IN ('Népal')
    AND pays NOT IN ('Chine');
    Mais le problème, c'est que ça me retourne aussi 'Evrest'.

    Merci d'avance !!

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 790
    Points
    30 790
    Par défaut
    Tu dois rechercher les sommets qui sont au Népal et pour lesquels il n'existe pas de sommet de même nom qui se trouve en Chine...
    Reste juste à traduire ça en SQL, mais le travail est déjà bien avancé
    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.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    INSA Centre Val de Loire
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : INSA Centre Val de Loire

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse
    Mais la, je sèche ...
    Peut-être ajouter 'AND nom_sommet==...'
    C'est que mon premier TD de SQL et je connais pas grand chose.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 790
    Points
    30 790
    Par défaut
    N'hésitez pas à consulter les cours SQL...
    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.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    INSA Centre Val de Loire
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : INSA Centre Val de Loire

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    J'ai trouvé cette écriture mais, il me retourne une erreur...
    Je vois pas trop comment utiliser NOT IN ou faut-il utiliser EXCEPT ou autre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT nom_sommet
    FROM localisation
    WHERE pays IN ('Népal')
    AND NOT IN (SELECT DISTINCT nom_sommet
    FROM localisation
    WHERE pays IN ('Chine'));
    Merci

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 790
    Points
    30 790
    Par défaut
    Ce n'était pas très loin...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT nom_sommet
    FROM localisation
    WHERE pays IN ('Népal')
    AND pays NOT IN (SELECT DISTINCT nom_sommet
    FROM localisation
    WHERE pays IN ('Chine'));
    Mais peut-être que le message d'erreur aurait pu t'aider à trouver une solution
    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.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    INSA Centre Val de Loire
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : INSA Centre Val de Loire

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Merci de votre correction cependant, le résultat est le suivant :

    nom_sommet
    Evrest
    Manaslu

    Alors que l'Evrest se trouve en Chine et au Népal...

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    La requête ne peux pas fonctionner car la sous-requête renvoie une liste de nom de sommet, qui sont comparé... à un pays.
    Tatayo.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    INSA Centre Val de Loire
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : INSA Centre Val de Loire

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Ah oui merci, c'est corrigé et ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT nom_sommet
    FROM localisation
    WHERE pays IN ('Népal')
    AND nom_sommet NOT IN (SELECT DISTINCT nom_sommet
    FROM localisation
    WHERE pays IN ('Chine'));

  10. #10
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 790
    Points
    30 790
    Par défaut
    Pas réveillé quand j'ai posté ma réponse
    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.

  11. #11
    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 820
    Points
    17 820
    Par défaut
    Ou encore comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT nom_sommet
      FROM localisation
     WHERE pays = 'Népal'
     MINUS -- (ou EXCEPT selon votre SGBD)
    SELECT nom_sommet
      FROM localisation
     WHERE pays = 'Chine';

  12. #12
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 790
    Points
    30 790
    Par défaut
    C'est en effet une solution bien plus élégante
    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.

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

Discussions similaires

  1. Problème commande SQL SELECT
    Par Quentin.vdv dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/10/2012, 19h53
  2. [FoxPro] Problème commande SQL dans le FoxPro 9.0
    Par supersoft5 dans le forum Autres SGBD
    Réponses: 0
    Dernier message: 05/12/2010, 17h48
  3. [MySQL] problème php et sql en ligne de commande
    Par PAYASS59 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/01/2010, 14h50
  4. [c#] Problème sessions et commandes SQL
    Par skystef dans le forum ASP.NET
    Réponses: 10
    Dernier message: 18/12/2006, 18h08

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