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 :

Prob somme SQL (pas trop facile, help!!!!!)


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Prob somme SQL (pas trop facile, help!!!!!)
    Bonjour j'ai un petit soucis avec une requete SQL

    la voici :
    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
     
    SELECT RPAD(REC_FACTURE.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_FACTURE.N_CA_FACT_DR,'999999999999999D00')) N_CA_FACT_DR  
    FROM REC_FACTURE where c_ent='"&reqEnt&"' 
    GROUP BY RPAD(REC_FACTURE.C_DEV_DR,5) 
     
    UNION 
     
    SELECT RPAD(REC_COMMANDE.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_COMMANDE.N_CA_CDE_DR,'999999999999999D00')) N_CA_CDE_DR 
    FROM REC_COMMANDE where c_ent='"&reqEnt&"' 
    GROUP BY RPAD(REC_COMMANDE.C_DEV_DR,5) 
     
    UNION SELECT 
     
    RPAD(REC_EXPEDITION.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_EXPEDITION.N_CA_EXP_DR,'999999999999999D00')) N_CA_EXPT_DR 
    FROM REC_EXPEDITION where c_ent='"&reqEnt&"' 
    GROUP BY RPAD(REC_EXPEDITION.C_DEV_DR,5)

    Cette requête me récupère bien les résultats que je voudrais, mais les valeurs ne sont pas sommées...je vous donne un exemple de réultat, c'est mieux que des mots

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    EUR  3115856.17 
    EUR  32643669.03 
    JPY  1680 
    JPY  602836.3 
    JPY  3312385.75 
    USD  106145.69 
    USD  10645157.72
    Voila ce que je voudrais faire c sommer les euros entre eux, les dollars entre eux etc....

    comment faire pour pouvoir sommer ces elements provenant de differentes tables???

    Merci

  2. #2
    Membre actif Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Points : 208
    Points
    208
    Par défaut
    essaies ceci :
    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
     
    select c_dev_cr,sum(n_ca_dr)
    from 
    (SELECT RPAD(REC_FACTURE.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_FACTURE.N_CA_FACT_DR,'999999999999999D00')) N_CA_DR 
    FROM REC_FACTURE where c_ent='"&reqEnt&"'
    GROUP BY RPAD(REC_FACTURE.C_DEV_DR,5)
     
    UNION
     
    SELECT RPAD(REC_COMMANDE.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_COMMANDE.N_CA_CDE_DR,'999999999999999D00')) N_CA_DR
    FROM REC_COMMANDE where c_ent='"&reqEnt&"'
    GROUP BY RPAD(REC_COMMANDE.C_DEV_DR,5)
     
    UNION SELECT
     
    RPAD(REC_EXPEDITION.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_EXPEDITION.N_CA_EXP_DR,'999999999999999D00')) N_CA_DR
    FROM REC_EXPEDITION where c_ent='"&reqEnt&"'
    GROUP BY RPAD(REC_EXPEDITION.C_DEV_DR,5))
    group by c_dev_dr

  3. #3
    Membre actif Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Points : 208
    Points
    208
    Par défaut
    dans les 3 requetes du FROM j'ai nommé le champs somme du meme nom N_CA_DR
    et dans la requete principale, je fait la somme des N_CA_DR des 3 requetes regroupés par la devise.
    C'est plus clair
    PS : J'ai oublié de fermer la parenthèse sur le sum ...

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    ok j'essaie de suite

    edit: c exactement ca, merci beaucoup

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    me revoila pour une autre question, toujours en relation avec la requete qu'a donné nounoursonne

    La requête me donne des valeurs en JPY, USD... Je dispose d'une table ttx_carat qui possède un champ n_ttx_conv_euro pour permettre la conversion des devises en euros. Cette table est mise à jour quotidiennement.

    Je voudrais donc en dessous du tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CAD  0 
    EUR  36913426.28 
    GBP  10779.43 
    JPY  3916902.05 
    PLN  182645.16 
    THB  46316258.68 
    USD  9476395.91
    afficher le montant total en euro.

    J'utilise donc ta requete qui somme, et je voudrais dans un premier temps récupérer els taux de change. J'ai fait qque chose mais ca ne marche pas, alors je ne sais pas si on a le droit de faire ca...


    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
     
    select a.c_dev_cr, a.sum(n_ca_dr), b.n_ttx_conv_euro 
    from 
    (SELECT RPAD(REC_FACTURE.C_DEV_DR,5) C_DEV_DR, 
    SUM(TO_CHAR(REC_FACTURE.N_CA_FACT_DR,'999999999999999D00')) N_CA_DR 
    FROM REC_FACTURE where c_ent='"&reqEnt&"' 
    GROUP BY RPAD(REC_FACTURE.C_DEV_DR,5) 
     
    UNION 
     
    SELECT RPAD(REC_COMMANDE.C_DEV_DR,5) C_DEV_DR, 
    SUM(TO_CHAR(REC_COMMANDE.N_CA_CDE_DR,'999999999999999D00')) N_CA_DR 
    FROM REC_COMMANDE where c_ent='"&reqEnt&"' 
    GROUP BY RPAD(REC_COMMANDE.C_DEV_DR,5) 
     
    UNION SELECT 
     
    RPAD(REC_EXPEDITION.C_DEV_DR,5) C_DEV_DR, 
    SUM(TO_CHAR(REC_EXPEDITION.N_CA_EXP_DR,'999999999999999D00')) N_CA_DR 
    FROM REC_EXPEDITION where c_ent='"&reqEnt&"' 
    GROUP BY RPAD(REC_EXPEDITION.C_DEV_DR,5)) a, ttx_carat b
    where b.c_dev=a.c_dev_dr and b.d_modif=to_date(sysdate,'DD/MM/YYYY')
    group by c_dev_dr
    en executant la requete en asp, ca plante...

    sur le serveur a.sum invalid indentifier... j'ai donc degagé le a.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR at line 1:
    ORA-00979: not a GROUP BY expression
    ce serait gentil si vous pouviez m'aider a resoudre ce probleme...meme si ca doit etre un probleme de syntaxe !!!dsl!

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    une 'tite ame charitable???

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    personne?

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Group by
    group by c_dev_dr, b.n_ttx_conv_euro


    select a.c_dev_cr, a.sum(n_ca_dr), b.n_ttx_conv_euro
    from
    (SELECT RPAD(REC_FACTURE.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_FACTURE.N_CA_FACT_DR,'999999999999999D00')) N_CA_DR
    FROM REC_FACTURE where c_ent='"&reqEnt&"'
    GROUP BY RPAD(REC_FACTURE.C_DEV_DR,5)

    UNION

    SELECT RPAD(REC_COMMANDE.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_COMMANDE.N_CA_CDE_DR,'999999999999999D00')) N_CA_DR
    FROM REC_COMMANDE where c_ent='"&reqEnt&"'
    GROUP BY RPAD(REC_COMMANDE.C_DEV_DR,5)

    UNION SELECT

    RPAD(REC_EXPEDITION.C_DEV_DR,5) C_DEV_DR,
    SUM(TO_CHAR(REC_EXPEDITION.N_CA_EXP_DR,'999999999999999D00')) N_CA_DR
    FROM REC_EXPEDITION where c_ent='"&reqEnt&"'
    GROUP BY RPAD(REC_EXPEDITION.C_DEV_DR,5)) a, ttx_carat b
    where b.c_dev=a.c_dev_dr and b.d_modif=to_date(sysdate,'DD/MM/YYYY')
    group by c_dev_dr, b.n_ttx_conv_euro

Discussions similaires

  1. [débutant mais pas trop] conversion string->entier
    Par Biosox dans le forum Débuter
    Réponses: 5
    Dernier message: 06/01/2006, 22h41
  2. Un serveur à pas trop cher ?
    Par Michaël dans le forum Ordinateurs
    Réponses: 11
    Dernier message: 16/12/2005, 20h16
  3. [CSS] Instruction Padding : FireFox pas trop comprendre ?
    Par DemonKN dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 11/08/2005, 15h23
  4. Réponses: 5
    Dernier message: 23/06/2004, 22h23

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