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 :

Condition sur SQL


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Par défaut Condition sur SQL
    * Bonjour, *

    Est ce que je peux dans une requête sql dire il faut exécuter l'une des ligne de ma requête. je m'explique
    je veux faire une select sur une 2 table
    la première PRODUIT(NOM,CODE,Nom version prix)
    la deuxième PRIX_Produit(Nom version prix ,Prix TTC)

    prix_produit peut contenir un ou plusieurs produits.
    moi je veux dire Si par exp
    La table PRIX_Produit contient les valeurs suivantes:

    Nom version prix | 1 | 2
    Prix TTC | 10 |15
    PRODUIT | A | B



    Moi je veux dire si la liste des prix égale a 1 alors il m'affiche Produit A
    Sinon Produit B


    merci pour votre aide...

  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
    22 039
    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 : 22 039
    Billets dans le blog
    6
    Par défaut
    Oui avec des jointures externes et le COALESCE.

    Merci de respecter la charte de postage en postant le DDL de vos tables ainsi qu'un jeu d'essais sous forme INSERT si vous dérirez plus d'aide ! A lire :
    http://www.developpez.net/forums/a69...gage-sql-lire/

    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
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Par défaut
    Dsl je suis encore débutante pour le site et pour sql aussi
    comment je peux faire la requête?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 039
    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 : 22 039
    Billets dans le blog
    6
    Par défaut
    Postez le DDL de vos tables comme indiqué ici :
    http://www.developpez.net/forums/a69...gage-sql-lire/


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

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    CREATE TABLE PRODUIT
    (Num INTEGER,
     Name VARCHAR(128),
     NumV INTEGER,
     CONSTRAINT PK_PRODUIT PRIMARY KEY (Num)
     
     
    CREATE TABLE PRIX_PRODUIT
    (
    NumV INTEGER,
    Name VARCHAR(128),
    prix INTEGER,
    CONSTRAINT PK_PRIX_PRODUIT PRIMARY KEY (NumV)
     
     
    INSERT INTO PRIX_Produit (NumV , Name , prix) 
    VALUES ('1', 'Version Vente', 10)
    INSERT INTO PRIX_Produit (NumV , Name , prix) 
    VALUES ('2', 'Version Achat', 18)
     
    INSERT INTO PRODUIT (Num, Name, NumV) 
    VALUES (10,'A',1)
    INSERT INTO PRODUIT (Num, Name, NumV) 
    VALUES (20,'B', 2)

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    C'est très bizarrement modélisé ce truc !
    Quand au besoin exprimé dans le premier message, je n'y comprends rien !

    Avec le jeu de données fourni, quel est le résultat attendu ? Et avec explication parce que sur deux lignes je ne suis pas sûr de comprendre davantage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    C'est très bizarrement modélisé ce truc !
    Il manque une clef étrangère de PRODUIT vers PRIX_PRODUIT, une distinction entre les deux colonnes 'Name' mais sinon pas d'erreur fondamentale à mon sens.

  8. #8
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    D'après ses données, nous avons un produit A auquel s'applique un prix 'version_vente' de 10 et un produit B auquel s'applique un prix 'version_achat' de 18.
    Soit, mais pourquoi avoir externalisé ces prix et pas le name de prix_produit qui sera à mon avis duppliqué un grand nombre de fois, avec les erreurs de saisie potentielles que cela représente et la perte de performances et de place ?
    Et pourquoi n'appliquer qu'un seul prix_produit à un produit ? N'y a t-il aucun produit qui soit à la fois acheté puis vendu ?

    Bref, j'ai du mal à percevoir la logique qui conduit à ce modèle !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Par défaut
    bonjour,
    c'est vrai il manque une clé étrangère pour la table produit qui référence le num de la version prix.
    chaque produit peut avoir un ou plusieurs prix.
    dans ma select je veux qu'il me ramène toutes les informations qui concernent mes produits avec deux conditions si je mets NumV=1 il me ramène seulement les produits qui sont dans cette version sinon il me ramène les autres si je mets NumV =2

  10. #10
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Il faut que tu construises ta requête dans le logiciel applicatif.

    Par exemple en PHP :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // $numv est déterminé ailleurs, suite à saisie de l'utilisateur par exemple
     
    $sql = "
        SELECT p.Name AS produit,
            pp.Name AS libelle_prix_produit,
            pp.Prix
        FROM PRODUIT p
        INNER JOIN PRIX_PRODUIT pp ON pp.NumV = p.NumV 
    ";
     
    if ($numv == 1)
    {
        $sql .= " WHERE pp.NumV = 1";
    }
    else
    {
        $sql .= "WHERE pp.NumV <> 1";
    }
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/05/2007, 11h06
  2. [SQL] Problème condition sur 1 table
    Par Dwain dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/02/2007, 19h51
  3. [SQL] Pb conditions sur tables multiples
    Par guitou12 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/08/2006, 13h49
  4. [Access] requete sql avec condition sur date
    Par qeja dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/03/2006, 23h54
  5. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25

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