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 :

Résolution requête SQL Help!


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut Résolution requête SQL Help!
    Salut à tous,

    Je bloque totalement sur la résolution d'une requête de niveau 1 sur le site
    sql-ex-ru, pourtant j'arrive à résoudre celles de niveau 3
    Alors je ne sais pas peut être bien que je suis vraiment à la ramasse...
    Voici l'énoncé:

    on a 4 tables

    Classes(class, type, country, numGuns, bore, displacement)
    Ships(name, class, launched)
    Battles(name, date)
    Outcomes(ship, battle, result)

    L'énoncé:

    For each country, determine battles in which the ships of the given country did not participate.
    Result set: country, battle

    Voici le result query attendu
    country name
    Germany Guadalcanal
    Germany North Cape
    Germany Surigao Strait
    Germany #Cuba62a
    Germany #Cuba62b
    Gt.Britain Guadalcanal
    Gt.Britain North Atlantic
    Gt.Britain North Cape
    Gt.Britain Surigao Strait
    Gt.Britain #Cuba62a
    Gt.Britain #Cuba62b
    Japan North Atlantic
    Japan North Cape
    Japan Surigao Strait
    Japan #Cuba62a
    Japan #Cuba62b
    USA North Atlantic
    USA North Cape
    USA #Cuba62a
    USA #Cuba62b

    Comme on peut le voir on affiche toutes les batailles pour lesquelles aucun navire n'a participé et on affiche son pays("country"), que l'on récupère à partir de la table "classes".
    A noter que dans le jeu de données, il n'y a pas forcément de "classes" associé à un ship(navire).
    Pour ma part, j'ai réussi à afficher(et encore) une partie du resultset,c'est-à-dire la colonne "country", mais je n'arrive pas à gérer la colonne "battle". Donc forcément pour l'instant dans ma colonne "battle" j'ai que des "NULL".

    THX

  2. #2
    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
    Le niveau 1 est supérieur au niveau 3 non ?
    Parce que ce n'est pas une requête très facile !

    Donne nous ta 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 !

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Utilisez le NOT EXISTS !

    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/ * * * * *

  4. #4
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut
    Bon je suis toujours bloqué, mais j'ai décomposé le problème:
    J'ai commencé par afficher les ships(avec leury country respectives) qui n'ont pas participé à toutes les batailles


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select c.country
    from classes c left join ships s 
    on c.class=s.class
    left join outcomes o
    on s.name=o.ship
    where not exists(
    select ship from outcomes ou
    where ou.battle=o.battle)
    Maintenant il me faut les batailles pour chaque country, mais je ne vois pas comment le faire.

Discussions similaires

  1. Requêtes sql, help me plz!
    Par server16 dans le forum Langage SQL
    Réponses: 18
    Dernier message: 07/11/2009, 10h45
  2. Help Requêtes SQL
    Par bishope dans le forum Langage SQL
    Réponses: 9
    Dernier message: 05/02/2008, 10h17
  3. [débutant] Help requète sql
    Par eric8787 dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/12/2007, 23h12
  4. [DataBase][SQL] Help pour ma requête
    Par ice69 dans le forum JBuilder
    Réponses: 2
    Dernier message: 27/04/2006, 19h53
  5. optimisation requête SQL!!! help!!
    Par anathem62 dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/05/2004, 16h26

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