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 :

<Debutant> inverser requête SQL


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 13
    Points
    13
    Par défaut <Debutant> inverser requête SQL
    Bonjour,

    Je dispose de la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    SELECT [TBL Pelerinage/evenement].ID, [TBL Pelerinage/evenement].[Nom de l'event], [TBL Pelerinage/evenement].Frais, [TBL Pelerinage/evenement].Commentaires 
     
    FROM [TBL Inscription] LEFT JOIN [TBL Pelerinage/evenement] ON [TBL Inscription].evenement = [TBL Pelerinage/evenement].ID
     
    WHERE ((([TBL Inscription].ID_part)=[OpenArgs]));
    Qui me sèlectionne une liste d'évènement pour lesquels un participant est inscrit.

    J'aimerais avoir une requète qui me sélectionne la liste des évènements pour lesquels le participant n'est PAS inscrit.

    J'ai pensé à :
    -utiliser le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT [TBL Pelerinage/evenement].ID, [TBL Pelerinage/evenement].[Nom de l'event], [TBL Pelerinage/evenement].Frais, [TBL Pelerinage/evenement].Commentaires 
     
    FROM [TBL Inscription] LEFT JOIN [TBL Pelerinage/evenement] ON [TBL Inscription].evenement = [TBL Pelerinage/evenement].ID
     
    WHERE ((([TBL Inscription].ID_part)<>[OpenArgs]));
    Mais cela ne marche pas (aucun résultat).

    -ou à chercher un moyen de complementer d'une requete
    "Afficher tous les éléments dont les clefs primaires ne sont pas dans cette liste"
    Mais je n'ai rien trouvé sur le forum/FAQ pour m'aider à faire cela.

    Si vous pouviez m'aider ou me donner une petite piste ca serait très sympa .

    Merci beaucoup !

  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
    Bonjour,

    Tout d'abord ta nomenclature laisse un peu à désirer, désolé...

    Sinon tu peux utiliser le NOT IN ...

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut à tous,

    Superbretzel> cela s'appelle une requete de non correspondance que tu peux trouver dans l'asssistant de requete.
    tu devrais avoir comme critère:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE [TBL Pelerinage/evenement].ID Is Null

  4. #4
    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
    Hmmm,

    Vodiem tu es sur de toi

    "Afficher tous les éléments dont les clefs primaires ne sont pas dans cette liste"
    Je ne crois pas que ce soit sur un champs NULL

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Merci à vous,

    Je n'y arrive toujours pas. En effet :

    Utilisation de Not in :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT [TBL Pelerinage/evenement].ID, [TBL Pelerinage/evenement].[Nom de l'event], [TBL Pelerinage/evenement].Frais, [TBL Pelerinage/evenement].Commentaires
    FROM [TBL Inscription] LEFT JOIN [TBL Pelerinage/evenement] ON [TBL Inscription].evenement = [TBL Pelerinage/evenement].ID
    WHERE ((([TBL Inscription].ID_part) Not In ([OpenArgs])));
    Cette requête me donne la liste des pèlerinages ou un autre participant que celui d'<OPEN ARG> est inscrit et non pas la liste des pèlerinages ou mon participant n'est pas inscrit.

    Utilisation de Null :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT [TBL Pelerinage/evenement].ID, [TBL Pelerinage/evenement].[Nom de l'event], [TBL Pelerinage/evenement].Frais, [TBL Pelerinage/evenement].Commentaires
    FROM [TBL Inscription] LEFT JOIN [TBL Pelerinage/evenement] ON [TBL Inscription].evenement = [TBL Pelerinage/evenement].ID
    WHERE [TBL Pelerinage/evenement].ID IS NULL;
    Cette requête ne me renvoie rien.



    Existe t'il un moyen d'effectuer la chose suivante :

    -Une première requête cherche les pèlerinages ou mon participant est inscrit (OK)
    -Une seconde cherche tous les pèlerinages qui ne sont pas des résultats de la première.


    Merci beaucoup pour votre aide !

  6. #6
    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
    Pareil,

    Ta requète doit dire

    "Je cherche les ID_part qui ne sont pas dans..."

    NOT IN, ta requête doit être mal formulée

    Tu dispose de la première
    Je dispose de la requête suivante :

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Citation Envoyé par Superbretzel
    J'aimerais avoir une requète qui me sélectionne la liste des évènements pour lesquels le participant n'est PAS inscrit.
    essais avec:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT [TBL Pelerinage/evenement].ID, [TBL Pelerinage/evenement].[Nom de l'event], [TBL Pelerinage/evenement].Frais, [TBL Pelerinage/evenement].Commentaires 
     
    FROM [TBL Pelerinage/evenement] LEFT JOIN [TBL Inscription] ON [TBL Inscription].evenement = [TBL Pelerinage/evenement].ID
     
    WHERE ([TBL Inscription].evenement IS NULL) OR ([TBL Inscription].ID_part)<>[OpenArgs]);

    Chtulus>
    Citation Envoyé par Superbretzel
    "Afficher tous les éléments dont les clefs primaires ne sont pas dans cette liste"
    c'est logique que tu pense à un "not in" mais s'ils ne sont pas présent dans cette liste cela peu aussi se traduire par un test non existence=nullité.

  8. #8
    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
    Bien vu vodiem, désolé

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. Inverser le sens d'une requête SQL..
    Par ganguill dans le forum SQL
    Réponses: 10
    Dernier message: 18/06/2010, 09h51
  3. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  4. [Debutant] Requête SQL Multi-Tables
    Par Superbretzel dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/02/2008, 11h47
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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