Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 14 sur 14
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Dom-Tom

    Informations forums :
    Inscription : janvier 2010
    Messages : 46
    Points : 11
    Points
    11

    Par défaut SQL calculer pourcentage dans une requête

    Bonjour

    j utilise des fichiers Hyperfile pcsoft, je voudrais calculer dans ma requete sql quel pourcentage representent les dépenses par rapport aux recettes. Comment faire ?

    Merci de votre aide, voici ma requête

    Code :
    1
    2
    3
    4
    5
    SELECT 
    SUM(DECODE(Depenses.DEP_Type,'D',Depenses.DEP_Montant,0)) AS Depense,
    SUM(DECODE(Depenses.DEP_Type,'R',Depenses.DEP_Montant, 0)) AS Recette
    FROM
    Depenses

  2. #2
    Expert Confirmé Sénior
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    3 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : mai 2002
    Messages : 3 067
    Points : 5 060
    Points
    5 060

    Par défaut

    bonjour,

    Faites un produit en croix ..?

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro Alain
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    5 618
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 5 618
    Points : 13 637
    Points
    13 637

    Par défaut

    Comme cela, ça ne convient pas ?
    Code :
    1
    2
    3
    4
    5
    6
    SELECT 
    SUM(DECODE(Depenses.DEP_Type,'D',Depenses.DEP_Montant,0)) AS Depense,
    SUM(DECODE(Depenses.DEP_Type,'R',Depenses.DEP_Montant, 0)) AS Recette,
    SUM(DECODE(Depenses.DEP_Type,'D',Depenses.DEP_Montant,0)) / SUM(DECODE(Depenses.DEP_Type,'R',Depenses.DEP_Montant, 0)) AS Rapport
    FROM
    Depenses
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Dom-Tom

    Informations forums :
    Inscription : janvier 2010
    Messages : 46
    Points : 11
    Points
    11

    Par défaut

    Bonjour

    j avais deja fait ca mais Windev n en veux pas

    Message
    les fonctions d agregats ne sont pas autorisées en dehors des clauses select ou having

    et donc je bute la dessus

  5. #5
    Expert Confirmé Sénior
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    3 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : mai 2002
    Messages : 3 067
    Points : 5 060
    Points
    5 060

    Par défaut

    Dans ce cas là il faut le feinter.

    Passez par une sous-requête ou une vue.

  6. #6
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Dom-Tom

    Informations forums :
    Inscription : janvier 2010
    Messages : 46
    Points : 11
    Points
    11

    Par défaut

    Comment ??

    windev n aimes pas trop les feintes

  7. #7
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Dom-Tom

    Informations forums :
    Inscription : janvier 2010
    Messages : 46
    Points : 11
    Points
    11

    Par défaut

    Pas de solution ?

  8. #8
    Expert Confirmé Sénior
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    3 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : mai 2002
    Messages : 3 067
    Points : 5 060
    Points
    5 060

    Par défaut

    Bah si, je vous ai déjà orienté sur des pistes ...

    Les avez-vous essayez ?
    qu'est-ce qui n'a pas marché ?
    etc

  9. #9
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Dom-Tom

    Informations forums :
    Inscription : janvier 2010
    Messages : 46
    Points : 11
    Points
    11

    Par défaut

    Si j ai essayé et meme réponse


    Message
    les fonctions d agregats ne sont pas autorisées en dehors des clauses select ou having

  10. #10
    Expert Confirmé
    Avatar de frenchsting
    Homme Profil pro Claude
    Développeur informatique
    Inscrit en
    juin 2003
    Messages
    1 879
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 1 879
    Points : 3 147
    Points
    3 147

    Par défaut

    Si la requête que tu as montrée dans ton premier mesage fonctionne, garde là !
    Utilise plutôt un traitement windev derrière :
    Code :
    1
    2
    3
    4
    5
    Poucent est reel 
    Hexecuterequete(MaRequete,...)
    Hlitpremier(MaRequete)
    Poucent = MaRequete.recette * 100 / (MaRequete.recette + MaRequete.depense)
    hannuledeclaration(MaRequete)
    Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
    Pas de question par MP s'il vous plait. Le forum est fait pour cela...

    Make it real not fantasy

  11. #11
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Dom-Tom

    Informations forums :
    Inscription : janvier 2010
    Messages : 46
    Points : 11
    Points
    11

    Par défaut

    C est la solution que j ai adopté mais ca doit pouvoir se faire dans la requête

  12. #12
    Expert Confirmé
    Avatar de frenchsting
    Homme Profil pro Claude
    Développeur informatique
    Inscrit en
    juin 2003
    Messages
    1 879
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 1 879
    Points : 3 147
    Points
    3 147

    Par défaut

    Pas sûr avec le HF...
    Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
    Pas de question par MP s'il vous plait. Le forum est fait pour cela...

    Make it real not fantasy

  13. #13
    Membre Expert Avatar de wimbish
    Homme Profil pro Christophe Vibert
    Développeur informatique
    Inscrit en
    octobre 2006
    Messages
    409
    Détails du profil
    Informations personnelles :
    Nom : Homme Christophe Vibert
    Âge : 40
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2006
    Messages : 409
    Points : 1 029
    Points
    1 029

    Par défaut

    Bonjour,

    Essayes :

    Code :
    1
    2
    3
    4
    5
    SELECT
    Depense/Recette AS rapport
    FROM 
    (SELECT SUM(DECODE(Depenses.DEP_Type,'D',Depenses.DEP_Montant,0)) AS Depense FROM Depenses),
    (SELECT SUM(DECODE(Depenses.DEP_Type,'R',Depenses.DEP_Montant, 0)) AS Recette FROM Depenses)
    Christophe.

    Tous les chemins mènent à Rome http://doc.pcsoft.fr/fr-FR/

  14. #14
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2012
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2012
    Messages : 137
    Points : 247
    Points
    247

    Par défaut

    Citation Envoyé par wimbish Voir le message
    Bonjour,

    Essayes :

    Code :
    1
    2
    3
    4
    5
    SELECT
    Depense/Recette AS rapport
    FROM 
    (SELECT SUM(DECODE(Depenses.DEP_Type,'D',Depenses.DEP_Montant,0)) AS Depense FROM Depenses),
    (SELECT SUM(DECODE(Depenses.DEP_Type,'R',Depenses.DEP_Montant, 0)) AS Recette FROM Depenses)
    Merci pour la contribution. J'ai essayé la requête pour un cas similaire dans mon application et ça marche formidablement. Merci à l'initiateur de la discussion de nous éclairer sur ses résultats à lui.

    Cordialement

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •