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 :

Calcul de chiffre d'affaire


Sujet :

SQL Oracle

  1. #1
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut Calcul de chiffre d'affaire
    Bonjour, j'aimerais calculer le chiffre d'affaire par rapport à une année donnée (1993) avec une tva de 20,60%. voici mon code de départ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select f.numfou, f.nomfou, sum(qtecde*priuni*20,60/100) as CA
    from fournis f, ligcom l, entcom e
    where f.numfou= e.numfou
    and e.numcom= l.numcom
    and trunc(datcom)=trunc(datcom)
    group by f.numfou, f.nomfou;
    mon soucis, j'arrive pas à extraire la date 1993 et le calcul basic du code que je viens de mettre me mentionne des erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQL Error: ORA-00909: nombre d'arguments non valide
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:
    cette erreur est dûe au calcul de ma somme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sum(qtecde*priuni*20,60/100) as CA
    Merci pour votre aide

    oracle 11G, SQL DEVELOPER 1.5.3

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 38
    Par défaut
    Bonsoir,

    Pour la premiere erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL Error: ORA-00909: nombre d'arguments non valide
    c'est parce que tu exprimes mal la virgule : dans l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(qtecde*priuni*20,60/100)
    la virgule est interprétée comme la séparation de deux paramètres que tu transmettrais la fonction sum et . bien placé devrait résoudre ton souci pour plus d'info

    Pour la date je ne comprends pas, elle est sensée etre stockée dans quel champ ?

  3. #3
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Merci, j'avais vu, au lieu de ',' il fallait un '.'

    sinon, en ce qui concerne, l'extraction de l'année 1993??

  4. #4
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Voilà, j'ai corrigé, ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT f.numfou, f.nomfou, sum(qtecde*priuni*20.60/100) AS CHIFFRE_D_AFFARE
    FROM fournis f, ligcom l, entcom e
    WHERE f.numfou= e.numfou
    AND e.numcom= l.numcom
    AND trunc(datcom)=trunc(datcom)
    GROUP BY f.numfou, f.nomfou;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    NUMFOU                 NOMFOU                         CHIFFRE_D_AFFARE       
    ---------------------- ------------------------------ ---------------------- 
    9120                   DISCOBOL                       8137                   
    9150                   DEPANPAP                       182310                 
    540                    ECLIPSE                        148320                 
    9180                   HURRYTAPE                      23072                  
    8700                   MEDICIS                        22042000               
    120                    GROBRIGAN                      14833648               
     
    6 rows selected
    quelqu'un pourrais m'éclairer pour extraire le chiffre d'affaire pour l'année 1993?? merci

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 38
    Par défaut
    Bonjour,

    Désolé mais je ne comprends pas l'information
    A quoi ca correspond
    Ou est stockée la date ?
    dans quelle table ?
    dans quel format ?
    Combien de modalités pour la date ?
    Pourquoi juste l'année 93 ?

  6. #6
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    juste donner le chiffre d'affaire par rapport à une année donnée. donc j'ai choisi l'année 1993. et je sais pas comment sortir cette info.

  7. #7
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    mdrr, c'est un code le "THE CHANGE" c'est un nickname mdrrrrrrrrrrrr

  8. #8
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    la date est stockée dans le "DATCOM" et la table est "ENTCOM" et la date est sous cette forme 'dd/mm/yy';
    voilà

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

    Dans to code

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT f.numfou, f.nomfou, sum(qtecde*priuni*20.60/100) AS CHIFFRE_D_AFFARE
    FROM fournis f, ligcom l, entcom e
    WHERE f.numfou= e.numfou
    AND e.numcom= l.numcom
    AND trunc(datcom)=trunc(datcom)
    GROUP BY f.numfou, f.nomfou;

    il faut peut etre
    changer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND trunc(datcom)=trunc(datcom)


    et apres ajouter ta date 1993

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT f.numfou, f.nomfou, sum(qtecde*priuni*20.60/100) AS CHIFFRE_D_AFFARE
    FROM fournis f, ligcom l, entcom e
    WHERE f.numfou= e.numfou
    AND e.numcom= l.numcom
    AND to_char(datcom)='1993'
    GROUP BY f.numfou, f.nomfou;

  10. #10
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 38
    Par défaut
    C'est quand meme plus simple avec toutes les informations.
    >>fatsora je serais d'avis de passer un paramètre ou deux à la fonction to_char comme le format de la date par exemple (YYYY)
    >>cashmoney apres je te laisse parcourir la doc

  11. #11
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Merci, je teste vite fait, et je vous fait le CR.

  12. #12
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Excellent, merci pour votre aide, j'apprends beaucoup

  13. #13
    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 derise Voir le message
    C'est quand meme plus simple avec toutes les informations.
    >>fatsora je serais d'avis de passer un paramètre ou deux à la fonction to_char comme le format de la date par exemple (YYYY)
    >>cashmoney apres je te laisse parcourir la doc
    Yes ,C'est une erreur

    il faut lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     to_char(dotcom,'YYYY')='1993'
    au lieu de ;

  14. #14
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    violà, ce que j'ai mis et ça fonctionne nikel, fatsora m'as mis to_char et c'est bien, j'ai juste rajouté 'yyyy', mais c'était déjà un grand pas.
    merci à vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT f.numfou, f.nomfou, sum(qtecde*priuni*20.60/100) AS CHIFFRE_D_AFFARE
    FROM fournis f, ligcom l, entcom e
    WHERE f.numfou= e.numfou
    AND e.numcom= l.numcom
    AND to_char(datcom, 'yyyy')='1993'
    GROUP BY f.numfou, f.nomfou;

  15. #15
    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
    Notez que vous pouvez standardiser le code de votre requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT
        f.numfou,
        f.nomfou,
        sum(qtecde*priuni*20.6/100) AS CHIFFRE_D_AFFAIRE
    FROM
        fournis f
        INNER JOIN entcom e ON e.numfou= f.numfou
        INNER JOIN ligcom l ON l.numcom= e.numcom
    WHERE
        extract(year from datcom) = 1993
    GROUP BY
        f.numfou,
        f.nomfou;
    Ca permet en relecture de bien faire la différence entre jointure et filtre (accessoirement on évite plus facilement les produits cartésiens).
    Je vous conseille également de préfixer tous vos champs (ici il manque qtecde / priuni / datcom), toujours dans un soucis de relecture.

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

Discussions similaires

  1. calcul Chiffre d'Affaire Mensuel
    Par alfadz dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 09/11/2011, 20h08
  2. requete calcul d'un chiffre d'affaire mensuel
    Par chahnou dans le forum Modélisation
    Réponses: 19
    Dernier message: 16/05/2008, 17h14
  3. Réponses: 5
    Dernier message: 07/03/2008, 09h34
  4. calculer des chiffres pour envoyer dans la bdd
    Par mecmec dans le forum Flash
    Réponses: 1
    Dernier message: 04/07/2007, 09h10
  5. Calculer des chiffres aleatoires
    Par skulled dans le forum C
    Réponses: 2
    Dernier message: 25/12/2006, 10h27

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