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 :

Par une requête, recopier une valeur si deux conditions sont remplies [AC-2013]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Par une requête, recopier une valeur si deux conditions sont remplies
    Bonsoir !
    J'ai une requête liant une table "Produit" comprenant les champs "produit" et "fabricant", et une table "Tests" où certains produits ont été testés. Si un produit appartenant à un fabricant a été testé, je souhaite marqué les autres produits du même fabricant comme testés.
    Par exemple :

    Table produit : numéro produit/nom fabricant/produit

    518/Bic/stylo noir
    519/Bic/stylo bleu
    520/Bic/stylo rouge
    521/Nestlé/fromage blanc
    526/Nestlé/fromage fermier
    527/Mattel/Barbie

    Table tests : ID test/numéro produit/teste ou pas
    1/518/teste
    2/521/teste

    Résultat souhaité dans champs calculé :

    518/Bic/stylo noir/teste
    519/Bic/stylo bleu/teste
    520/Bic/stylo rouge/teste
    521/Nestlé/fromage blanc/teste
    526/Nestlé/fromage fermier/teste
    527/Mattel/Barbie

    Comment puis-je procéder ? Une requête avec une expression "IIF" est-elle la solution ?

    Merci de votre aide précieuse !

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 722
    Points : 57 415
    Points
    57 415
    Billets dans le blog
    42
    Par défaut
    Bonsoir,

    tu peux faire ça en deux requêtes en décomposant le problème.

    Quelles sont les marques testées (R_MarquesTestées) :
    Code sqm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT distinct NomFabricant
    FROM Produit INNER JOIN tests ON Produit.NumProduit = tests.NumProduit;

    Les produits testés sont ceux dont la marque a une correspondance dans R_MarquesTestées :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT 
    Produit.NumProduit, 
    Produit.NomFabricant, 
    Produit.Produit, 
    IIf(R_MarquesTestées.NomFabricant<>"","testé","") AS teste
    FROM Produit LEFT JOIN R_MarquesTestées 
    ON Produit.NomFabricant = R_MarquesTestées.NomFabricant;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Merci ! Ca marche !
    Merci beaucoup. Simple et efficace. Bien vu, merci encore, gros soulagement !!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2015, 17h16
  2. [AC-2003] Renommer une colonne d'une requête avec la valeur d'un champ
    Par constalp dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 11/08/2010, 12h03
  3. Réponses: 2
    Dernier message: 02/06/2006, 11h26
  4. Réponses: 4
    Dernier message: 01/12/2005, 14h36
  5. Réponses: 5
    Dernier message: 07/11/2005, 15h38

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