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

Développement SQL Server Discussion :

Lister les places disponibles


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Par défaut Lister les places disponibles
    Bonjour à tous,

    je travaille sur sql server2000.
    je voudrais faire une requête qui m'affiche les places disponibles d'une voiture.
    chaque voiture à cinq place numéroté de 1 a 5
    donc j'ai une table Voiture(idVoiture, NumeroPlace)

    j'ai une table Facture (idFacture, DateFacture, idVoiture, MontantFacture)
    j'ai une table Passager(idFacture, NomPassager, NumeroPlace)

    La relation entre la table Facture et la table Voiture : le champ idVoiture
    La relation entre la table Facture et la table Passager : le champ idFacture

    comment connaître les N° de place disponibles?
    par exemple: j'ai fait une facture pour deux passagers en leur attribuant les places 3 et 4, comment faire une requête qui me permet de renvoyer que les places 1 et 2 et 5 sont disponibles?

    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 997
    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 997
    Billets dans le blog
    6
    Par défaut
    Votre modèle n'est pas bon. Votre table voiture devrait être :
    Voiture(idVoiture, NombrePlace).
    Dès lors il vous faut en sus une table des nombre entiers (le genre de table que toute base devrait avoir avec une table des dates). Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE E (i integer)
    INSERT INTO E VALUES (0) ... INSERT INTO E VALUES (999)
    Dès lors votre requête va s'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT i AS PLACE_LIBRE
    FROM   E
           INNER JOIN Voiture AS V
                 ON i BETWEEN 1 AND V.NombrePlace
           INNER JOIN Facture AS F
                 ON V.idVoiture = F.idVoiture
    WHERE  F.idFacture = 123
    AND    i NOT IN (SELECT NumeroPlace
                     FROM   Passager AS P  
                     WHERE  P.idfacture = F.idfacture)
    Comme vous n'avez pas respecter la charte de postage et par conséquent vous n'avez pas mis de jeu d'essais, je ne peut tester cette solution.

    Merco à l'avenir de fournir un jeu d'essais !

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

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Par défaut
    Merci SQLPRO de votre réponse elle répond à mes besoins.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/02/2010, 13h41
  2. lister les resources disponibles dans un projet
    Par *alexandre* dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 12/11/2007, 18h48
  3. Réponses: 1
    Dernier message: 13/10/2006, 10h32
  4. [C#] Lister les serveurs disponibles dans le réseau
    Par fafa139 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/04/2006, 18h09
  5. Lister les ports disponibles
    Par belfaigore dans le forum C++Builder
    Réponses: 17
    Dernier message: 07/02/2005, 16h58

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