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

SQL Oracle Discussion :

[ORACLE 9] requete un chouia complexe


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Par défaut [ORACLE 9] requete un chouia complexe
    Bonjour,

    j'aimerais savoir s'il est possible à parti d'un SELECT d'afficher un résultat de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    NOM PRODUIT	TOTAL	VENDU	NON VENDU
    AAA		100	98	2
    BBB		300	100	200
    la structure de mes tables serait du type
    TABLE PRODUIT
    TABLE VENTE

    Je sais parfaitement que ce n'est pas le but du SQL ce type de résultat "fashion" mais j'avoue ce serait cool d'y arriver en une requete...je pense que c'est faisable en plusieurs requêtes en créant une table intermédiaire mais bon...

    Si vous avez une idée...

    Sai

  2. #2
    Membre expérimenté Avatar de petitfrere
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 259
    Par défaut
    c'est pas une requete fashion il y a 1000000000 fois pire

    donne les noms des colonnes sinon ca va etre compliquer d'aider a moins que c'est celle que tu cite alors la c'est hyper hyper simple

    ca parait simple

  3. #3
    Membre expérimenté Avatar de petitfrere
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 259
    Par défaut
    [QUOTE=petitfrere;4558294]c'est pas une requete fashion il y a 1000000000 fois pire

    donne les noms des colonnes sinon ca va etre compliquer d'aider a moins que c'est celle que tu cite alors la c'est hyper hyper simple

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Par défaut
    bah disons :
    dans la table PRODUIT il y a uniquement le nom du produit ce nom de produit me sert aussi de clé primaire.

    dans la table VENTE il y a aussi seulement le nom du produit.

    je considère qu'une vente est effectuée dès lors qu'elle apparait dans ma table VENTE et par conséquent un produit non vendu si elle est inexistante dans la table VENTE.

    en espérant avoir été clair...

  5. #5
    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 : 47
    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
    Jolie modélisation !
    Au mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT
        P.NOM,
        count(V.NOM) AS Nb_Ventes
    FROM
        PRODUIT P
        LEFT OUTER JOIN VENTE V
          ON V.NOM = P.NOM
    GROUP BY
        P.NOM;

  6. #6
    Membre expérimenté Avatar de petitfrere
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 259
    Par défaut
    select P.nom_produit , count(P.nom_produit) as TOTAL, count(V.nom_produit) as VENDU, count(P.nom_produit) - count(V.nom_produit) as NON_VENDU
    from produit P, vendu V
    where V.nom_produit=P.nom_produit

  7. #7
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Citation Envoyé par petitfrere Voir le message
    select P.nom_produit , count(P.nom_produit) as TOTAL, count(V.nom_produit) as VENDU, count(P.nom_produit) - count(V.nom_produit) as NON_VENDU
    from produit P, vendu V
    where V.nom_produit=P.nom_produit

    Est ce que tu as testé ce que tu as posté,

    un count est obligatoirement suivi d'un GROUP BY

  8. #8
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Jolie modélisation !
    je sais c'était juste pour simplifier ma demande au maximum. en pratique c'est mieux modéliser que ca je vous rassure et mieux foutu quoique j'en sais rien moi j'requete seulement sur cette base

    alors pour faire simple, admettons :
    la table PRODUIT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    NOM_PRODUIT
    ---------------
    AAA
    BBB
    CCC
    DDD
    EEE
    la table VENTE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NOM_PRODUIT_VENDU
    ---------------
    AAA
    BBB

    moi ce que je voudrais c'est avoir ca en résultat en une seule requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TOTAL	VENDU	NON_VENDU
    -----	-----	---------
    5	2	3
    alors je ne pense que ta requête me donnera ca comme réponse petitfrere...mais c'est vrai que j'ai un peu merdé dans mon explication lors de mon premier post.

    alors si quelqu'un a une idée

  9. #9
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Si tu combines les reponses des intérevenants au dessus
    tu as la reponse !

    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
     
       with PROD
        as
        ( select 'AAA' nom_produit  from dual union
          select 'BBB' nom_produit  from dual union
          select 'CCC' nom_produit  from dual union
          select 'DDD' nom_produit  from dual union
          select 'EEE' nom_produit  from dual),
         VENDU
         as
        (select 'AAA' nom_produit from dual union
         select 'BBB' nom_produit from dual
          )
       select  count(P.nom_produit) as TOTAL, count(V.nom_produit) as VENDU, count(P.nom_produit) - count(V.nom_produit)  as NON_VENDU
      from PROD P
       left outer join vendu V
      on (V.nom_produit =p.nom_produit )
       /
     
         TOTAL      VENDU  NON_VENDU
    ---------- ---------- ----------
             5          2          3

  10. #10
    Membre expérimenté Avatar de petitfrere
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 259
    Par défaut
    Non j'ai pas testé, c'était juste pour l'aiguiller

    Oui j'ai oublié le count dsl

  11. #11
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Par défaut
    thank you everybody j'ai adapté vos réponses à ma BDD et bah ca marche impec'

    Sai

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

Discussions similaires

  1. [oracle 8i] requete SQL entre deux instances oracle
    Par flore_ange dans le forum Oracle
    Réponses: 5
    Dernier message: 18/04/2006, 17h43
  2. [Oracle 9] Requete selection top 5
    Par Le Mad dans le forum Langage SQL
    Réponses: 11
    Dernier message: 19/02/2006, 17h29
  3. DELPHI ORACLE et REQUETES OUVERTES
    Par klingc dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/06/2005, 13h51
  4. Requete un peu complexe avec la fonction IN
    Par Taichin dans le forum Oracle
    Réponses: 27
    Dernier message: 10/11/2004, 08h59
  5. Réponses: 3
    Dernier message: 17/05/2004, 17h28

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