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

Requêtes et SQL. Discussion :

Comment créer une sous requête sur plusieurs champs?


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 85
    Points
    85
    Par défaut Comment créer une sous requête sur plusieurs champs?
    Bonjour

    Dans la tables service je souhaite sélectionner tous les services qui, dans la table ServiceAppliquerPeriode n'ont pas d'occurence associée a per_dateDebut, per_dateFin...



    Comment faire sachant que la clé primaire de la table service est double et que par conséquence je ne peux exécuter une sous requête?

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Utilise NOT IN enfin sous l'assistant "N'est pas"
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Chtulus Voir le message
    Bonsoir,

    Utilise NOT IN enfin sous l'assistant "N'est pas"
    Bonjour. Merci de ta réponse. Le véritable probème est que ma table service possède duex clé primaire. Or je ne peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT *
    FROM Services
    WHERE srv_intitule, srv_dureeApplication NOT IN 
    (
    SELECT srv_intitule, srv_dureeApplication
    FROM ServiceAppliquerPeriode
    WHERE ServiceAppliquerPeriode.per_dateDebut = [paramDateDebut]
    AND ServiceAppliquerPeriode.per_dateFin = [paramDateFin]
    )
    Car le predicat NOT IN ne peut se faire que sur une colonne et que ma restriction doit se faire sur un couple de deux colonnes

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Tu peux essayer de concatener tes deux clés primaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT *
    FROM Services
    WHERE srv_intitule & srv_dureeApplication NOT IN 
    (
    SELECT srv_intitule & srv_dureeApplication
    FROM ServiceAppliquerPeriode
    WHERE ServiceAppliquerPeriode.per_dateDebut = [paramDateDebut]
    AND ServiceAppliquerPeriode.per_dateFin = [paramDateFin]
    )
    Amicalement

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par DMboup Voir le message
    Tu peux essayer de concatener tes deux clés primaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT *
    FROM Services
    WHERE srv_intitule & srv_dureeApplication NOT IN 
    (
    SELECT srv_intitule & srv_dureeApplication
    FROM ServiceAppliquerPeriode
    WHERE ServiceAppliquerPeriode.per_dateDebut = [paramDateDebut]
    AND ServiceAppliquerPeriode.per_dateFin = [paramDateFin]
    )
    Génial c'était tout con mais fallait y penser

    Merci beaucoup

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

Discussions similaires

  1. Requête sur plusieurs champs
    Par pierrot67 dans le forum Bases de données
    Réponses: 6
    Dernier message: 21/02/2007, 10h51
  2. comment faire une sous requête
    Par zope49 dans le forum BIRT
    Réponses: 1
    Dernier message: 18/12/2006, 17h41
  3. Comment créer une base utilisable sur PC sans ACCESS
    Par lesalloues dans le forum Runtime
    Réponses: 4
    Dernier message: 22/08/2006, 14h52
  4. [MySQL] Comment créer une sous catégorie dans mon site ?
    Par plex dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/08/2006, 09h59
  5. Réponses: 7
    Dernier message: 10/05/2006, 11h15

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