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 de non existence


Sujet :

Langage SQL

  1. #21
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 4
    Points
    4
    Par défaut Bonjour Cinephil, PunkOff
    Bonjour CinePhil,
    votre requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT l.nom, l.prenom
    FROM locataire l
    LEFT OUTER JOIN verser v 
    	ON v.locataire_idlocataire = l.idlocataire
    	AND v.anne = 2012
    	AND v.mois_idmois = 1
    WHERE v.locataire_idlocataire IS NULL
    marche parfaitement comme vous l'avez expliquer, la seule chose qui ne fonctionne pas, c'est au moment pour ou un locataire qui a loué plusieurs chambre, et en a payé la loacation d'une seule chambre pour le mois de janvier, ne fais plus sortir cette personne au moment j'exécute votre requête en choissant le mois 1 pour l'année 2012, or il doit resortir cette personne pourvu qu'il n'a pas payé pour tous les chambres.
    mais en ajoutant, ce que punkoff
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (SELECT a.chambre_idchambre, a.locataire_idlocataire, b.idmois, b.mois FROM louer a, mois b WHERE b.mois BETWEEN 1 AND 5) a
    INNER JOIN locataire l ON l.idlocataire = a.locataire_idlocataire
    a jouter a votre requête le problème est parfaitement resolut, sur une periode ou le moi est entre 1 et 1, et aussi pour une periode ou le mois est entre 1 ou 5 par exemple; la liste de tous les locataires qui n'ont payé du tout ou une partie des locations pour certaianes chambres et d'autres n'ont sont listés.

    Je vais tooujours continuer les test sur plusieurs niveaux de payement et je vous tiendrai informer.

    Merci pour votre soutient.
    Kokey

  2. #22
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 902
    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 902
    Points : 53 143
    Points
    53 143
    Billets dans le blog
    6
    Par défaut
    Pourquoi n'utilisez vous pas les jointures normalisées ? C'est idiot de faire une produit cartésien puis une restriction...

    Requête mal branlée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (SELECT a.chambre_idchambre, a.locataire_idlocataire, b.idmois, b.mois FROM louer a, mois b WHERE b.mois BETWEEN 1 AND 5) a
    INNER JOIN locataire l ON l.idlocataire = a.locataire_idlocataire
    Requête correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (SELECT a.chambre_idchambre, a.locataire_idlocataire, b.idmois, b.mois 
     FROM   louer a
            INNER JOIN mois b 
                  ON b.mois BETWEEN 1 AND 5) a
    INNER JOIN locataire l ON l.idlocataire = a.locataire_idlocataire
    A +

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2013, 12h38
  2. Réponses: 6
    Dernier message: 10/02/2006, 13h46
  3. Réponses: 8
    Dernier message: 26/01/2006, 14h47
  4. Réponses: 9
    Dernier message: 17/03/2005, 09h20
  5. Requète avec NOT EXISTS
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 23/09/2003, 15h20

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