[Access]Je bloque sur une requête qui ne me semblait pas compliquée...

Je bloque sur une requête qui ne me semblait pas compliquée... [Access] - SQL/NoSQL - Programmation

Marsh Posté le 26-02-2003 à 21:10:01    

Bonjour à tous,
 
J'avais deja posté sur ce forum il y a quelques temps et j'avais reçu des reponses interessantes, alors me revoilà ! :)
J'ai refait une base rapidement, sans formulaires et en fait j'ai un problème avec un requête. J'ai passé mon après-midi a reflechir dessus mais je ne trouve pas de solution.
 
En fait je bloque directement au début : je n'arrive pas à calculer indépendamment la somme des monatnts positifs et la somme des montants négatifs... Aie Aie !
 
Voici le problème :
 
Dans ma table tblDonnees, j'ai un champ montant et un champ codepropre.
 
Lorsque le code propre est egal a 100, je dois pouvoir afficher dans un formulaire  
- la Somme de tous les montants > 0 dont le code propre = 100  
- la Somme de tous les montants < 0 dont le code propre = 100  
 
idem pour les montants qui ont un code 110
 
Ensuite dans le formulaire il faut que soit calculer le pourcentage de différence entre les montants >0 et <0 pour le code 100 et 110
 
exemple :
 
Montant 1 : 1000 et code 100
Montant 2 : -950 et code 100
Montant 3 : 200 et code 100
Montant 4 : -220 et code 100
 
Dans mon formulaire je dois avoir :  
 
Somme Debit code 100 : -1170
Somme Crédit code 100 : 1200
 
Pourcentage de différénce : -1170/1200
Si inférieur à 4% --> OK
Si supérieur à 4% --> Erreur
 
 
Si une fois de plus quelqu'un pouvais m'aider, ce serait vraiment cool !
Vous pouver trouver le fichier .mdb à cette adresse http://www.si-la-gi.com/greg.mdb
 
Merci d'avance
A+
 
Gregory
 

Reply

Marsh Posté le 26-02-2003 à 21:10:01   

Reply

Marsh Posté le 27-02-2003 à 09:37:36    

En code SQL Access (que tu peux copier/coller dans la création de requête) voici ce que ça donne pour la première partie de ton problème:
 


SELECT tblDonnees.Devise, tblDonnees.Codepropre, Sum(tblDonnees.Montant) AS SommeDeMontant, Sum(IIf([CodePropre]=100 And [Montant]>0,[Montant],0)) AS SomMntPositifs, Sum(IIf([CodePropre]=100 And [Montant]<0,[Montant],0)) AS SomMntNegatifs
FROM tblDonnees
GROUP BY tblDonnees.Devise, tblDonnees.Codepropre
HAVING (((tblDonnees.Codepropre)=100));


 
J'ai testé sur ta base avec succès
J'espère avoir compris ton problème
 
a+


Message édité par tegu le 27-02-2003 à 09:39:19
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed