Automatiser calcul access

Automatiser calcul access - SQL/NoSQL - Programmation

Marsh Posté le 27-02-2008 à 13:23:15    

bonjour tout le monde
 
j'ai un petit souci j'ai dans une table des données sur des produits(chariots de manutention) et une deuxième tables les indices de calcul correspondant à chaque mois donc il y'a une colonne indice, années, mois.
 
pour le calcul me faut faire ((indice année N/ indice années N-1)*0.4)
 
donc ma question est comment automatiser le calcul c à d j'entre la date anniversaire du contrat et il cherche automatiqument N-1 et N et calcul le rapport merci pour votre aide

Reply

Marsh Posté le 27-02-2008 à 13:23:15   

Reply

Marsh Posté le 27-02-2008 à 14:15:43    

adel53 a écrit :

donc ma question est comment automatiser le calcul c à d j'entre la date anniversaire du contrat et il cherche automatiqument N-1 et N et calcul le rapport merci pour votre aide


Dans quel table est la date anniversaire ?
Plus généralement, pourrais-tu nous donner le contenu de chacune des tables ?
 


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 27-02-2008 à 14:47:53    

salut merci pour ta réponse alors je précise
 
table Equib:
-numero
-mois
-equib
-annee
 
table ichhts
-numero
-mois
-equib
-annee
 
table contrat
-numero
-numeroDeSerie
-debutLocation
-finLocation
 
 
la date anniversaire est par exemple si le contrat a commencé le 10/02/2007 c'est le 10/02/2008  
 
donc le calcul a éffectué c'est  (0.4*(equib/equib0)+(0.6*(ichtts/ichtts0))
 
equib0 et ichtts sont les valeurs correspondante aux valeurs lors de la signature du contrat
equib et ichtts  sont les valeurs correspondante aux valeurs à la date anniversaire c à d n+1; n+2......
 
alors ce que je veux faire c'est une fois je rentre le numéro de série, il récupére déja equib0 et ichtts0. puis il  calcul selon la valeur des indices à la date donnée.
 
j'espere que j'ai été trés clair je reste à votre disposition pour d'autre détails  
 

Reply

Marsh Posté le 27-02-2008 à 16:39:59    

Code :
  1. SELECT numeroDeSerie,
  2. EXTRACT(MONTH FROM debutLocation) AS mois_0,
  3. EXTRACT(YEAR FROM debutLocation) AS annee_0,
  4. (SELECT equib FROM equib WHERE mois = mois_0 AND annee = annee_0) AS equib_0,
  5. (SELECT ichhts FROM ichhts WHERE mois = mois_0 AND annee = annee_0) AS ichhts _0,
  6. (SELECT equib FROM equib WHERE mois = mois_0 AND annee = annee_0 + 1 ) AS equib_1,
  7. (SELECT ichhts FROM ichhts WHERE mois = mois_0 AND annee = annee_0 + 1) AS ichhts _1,
  8. (0.4*(equib_1/equib_0)+(0.6*(ichtts_1/ichtts_0)) AS resultat
  9. FROM TABLE contrat WHERE numeroDeSerie = ‘XXXX’


Y'a peut etre plus simple, mais en une seule requete SQL, je ne vois que ca...

 

PS : Je ne suis pas sur que les instruction EXTRACT marche avec tous les SGBD ni que ta date "debutLocation" respecte le standard nécessaire...


Message édité par babasss le 27-02-2008 à 16:40:16

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 27-02-2008 à 16:48:09    

merci encor une fois pour ta réponse le code me parait correct je pense qu'il pourra donner les informations néanmoins je dois changer les dates pour les indices. par exemple j'ai pour equib 100 pour janvier 2000. donc il faut je pense que dans ma table equib je rentre les info pour chaque jour sinon ca marchera pas qu'est ce qu'on t'en pense

Reply

Marsh Posté le 27-02-2008 à 16:59:46    

adel53 a écrit :

merci encor une fois pour ta réponse le code me parait correct je pense qu'il pourra donner les informations néanmoins je dois changer les dates pour les indices. par exemple j'ai pour equib 100 pour janvier 2000. donc il faut je pense que dans ma table equib je rentre les info pour chaque jour sinon ca marchera pas qu'est ce qu'on t'en pense


Je comprends pas vraiment ta question...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 28-02-2008 à 08:26:53    

la question est la suivante le tableau ou j'ai les indice est un tableau à double entrée d'un coté les indices correspondant à chaque année et de l'autre les mois par exemple  
                1999
               equib
 
janvier       100
fevrier       110
mars          ....
 
est  ce que ton code peut marché avec ceci ou non

Reply

Marsh Posté le 28-02-2008 à 11:30:12    

J'avoue que je ne comprends pas ta vision, tu n'as pas un tableau mais une table qui est comme ca (si je ne me trompe pas) :
numero   mois   equib   annee  
12356     01      100     1999
12353     02      110     1999
...
 
C'est sur cela que j'ai construit ma requete sql...
 


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 29-02-2008 à 13:06:27    

salut  
je te remercie tout d'abord pour ta patience je vais adapter le tableau pour qu'il soit conforme avec la requête mais j'ai encore une toute petite question mes contrat  ont la date sous la forme suivante jj/mm/aaaa  le fait que dans le tableau des indices il n' ya que les mois et les années est ce que ça cause un problème ou non  merci

Reply

Marsh Posté le 29-02-2008 à 13:19:26    

adel53 a écrit :

salut  
je te remercie tout d'abord pour ta patience je vais adapter le tableau pour qu'il soit conforme avec la requête mais j'ai encore une toute petite question mes contrat  ont la date sous la forme suivante jj/mm/aaaa  le fait que dans le tableau des indices il n' ya que les mois et les années est ce que ça cause un problème ou non  merci


En théorie oui, mais comme tu peux le voir dans le sql, j'ai contouné le pb en utilisant des fonctions EXTRACT pour récupérer le mois et l'année et ainsi pouvoir faire correspondre avec tes tables d'indice.


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 29-02-2008 à 13:19:26   

Reply

Marsh Posté le 29-02-2008 à 13:22:24    

ok je vais essayé tout ceci et je te tiens au courant en tout cas je te remercie pour tout

Reply

Sujets relatifs:

Leave a Replay

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