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 :

Quantité totale nomenclature


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 74
    Points : 44
    Points
    44
    Par défaut Quantité totale nomenclature
    Dans le select de recherche nomenclature multi niveaux, comment multiplier les quantités des différents niveaux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Select 
    rownum,
    level,
    t1.ComposantParent,
    t1.ComposantEnfant,
    t1.Quantite,
    ???
    from TableNomenclature t1
    start with t1.ComposantParent = 'RefProduit'
    connect by prior t1.ComposantEnfant = t1.ComposantParent
    Ex :
    Parent Enfant __ Quantite __ ??? _____ Commentaire
    C1___C2__________10____10______(10 => 10 C2)
    C2___C3__________2_____20______(10*2 => 20 C3)
    C3___C4__________5_____100_____(10*2*5 => 100 C4)

  2. #2
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Hello,

    Tu peux utiliser la fonction lag.

    Regarde ici: http://lalystar.developpez.com/fonctionsAnalytiques/

    Jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 74
    Points : 44
    Points
    44
    Par défaut
    J'ai trouvé cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 
    rownum,
    level,
    t1.ComposantParent,
    t1.ComposantEnfant,
    t1.Quantite,
    '1' || SYS_CONNECT_BY_PATH(t1.quantite, '*') AS TotalQte
    FROM TableNomenclature t1
    start WITH t1.ComposantParent = 'RefProduit'
    connect BY prior t1.ComposantEnfant = t1.ComposantParent
    qui donne le résultat suivant sous forme de texte :
    TotalQte
    1*10
    1*10*2
    1*10*2*5

    Existe t-il une manière de transformer ce texte en "nombre" ?

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Citation Envoyé par BaldeckJ Voir le message
    Existe t-il une manière de transformer ce texte en "nombre" ?
    Produit cumulative en sql

  5. #5
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Alors dans ce cas, dans l'exemple ci-dessus:

    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
     
     
    create or replace function CalcProduit (pVal Varchar2) return NUMBER as
    lNum  Number;
    Begin
     
     execute immediate ('select '||pVal||' from dual') into lNum;
     return lNum;
     
    End;
    /
     
     
    SELECT 
    rownum,
    level,
    t1.ComposantParent,
    t1.ComposantEnfant,
    t1.Quantite,
    CalcProduit ('1' || SYS_CONNECT_BY_PATH(t1.quantite, '*')) AS TotalQte
    FROM TableNomenclature t1
    start WITH t1.ComposantParent = 'RefProduit'
    connect BY prior t1.ComposantEnfant = t1.ComposantParent
    Non?

    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

  6. #6
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    J'avais pas vu la fonction du même type dans ton post skuatamad.

    Je préfère ta version avec le bloc PL car pas d'appel à DUAL...

    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

Discussions similaires

  1. PRODUIT prix total= prix unitaire * quantité
    Par toutounesan dans le forum Langage SQL
    Réponses: 13
    Dernier message: 24/12/2010, 09h25
  2. Réponses: 1
    Dernier message: 23/05/2008, 10h10
  3. Calcul heure par quantité total sur cadence demandé
    Par froutloops62 dans le forum IHM
    Réponses: 27
    Dernier message: 18/10/2007, 23h00
  4. [MySQL] Aide envoie commande (calcul quantité + prix commande total)
    Par klue_ dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/05/2007, 11h49
  5. Réponses: 1
    Dernier message: 20/02/2007, 10h23

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