Bonjour,

Je souhaiterais faire une insertion multiple au sein de ma table mais je ne sais si ce que je suis en train d'élaborer est SQL ment correct ou même si cela a des chances d'aboutir

j'ai 3 tables : VALEUR_MESURE_APPLI, CO_GRP_APPLI, GRP_APPLI

VALEUR_MESURE_APPLI: IDapplication, VALEUR, PERFORMANCE,DATE

IDapplication | VALEUR | PERFORMANCE | DATE
1 | 300 | ...| 25/04/3006
7 | 10 | ... | 24/04/2006
11| 7000 | ... |22/04/2006
1| 250 | ... | 20/04/2006


CO_GRP_APPLI: IDapplication, IDfamille appli (table pour faire les correspondances entre un groupe d'applications et ses différentes appli)

IDapplication | IDgrp
1 | 4 |
7 | 4 |
11| 2 |

GRP_APPLI: IDgrp, nom_grp, seuil_perf

IDgrp | nom_grp | seuil_perf
4 | IBM | 500
2 | MICROSOFT | 200

L'objectif serai de comparer le champ valeur d'une mesure d'une application avec le seuil qui est associée au groupe d'applications auquel appartient l'application concernée par la mesure et en déduire la valeur a mettre au sein du champ performance de VALEUR_MESURE_APPLI.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
si valeur < seuil  alors performance =100
si seuil <valeur < 2 *seuil alors performance = 100- 100*(valeur -seuil)/Seuil
si valeur > 2  * seuil alors performance = 0
je pensais faire quelquechose de la forme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
UPDATE VALEUR_MESURE_APPLI
 
SET VALEUR_MESURE_APPLI.PERFORMANCE=(SELECT IDappli, DATE_MES, CASE    WHEN VALEUR_MESURE_APPLI.VALEUR >   2*Seuil THEN 0 
            WHEN VALEUR_MESURE_APPLI.VALEUR >    THEN 
            WHEN Seuil <VALEUR_MESURE_APPLI.VALEUR < 2*Seuil   THEN 100- 100*(valeur -seuil)/Seuil100
 
                   END AS PERFORMANCE,
FROM VALEUR_MESURE_APPLI, GRP_APPLI
WHERE (VALEUR_MESURE_APPLI.IDAPPLICATION= CO_GRP_APPLI.IDAPPLICATION AND CO_GRP_APPLI.IDgrp=GRP_APPLI.IDgrp)
mais franchement je ne sais pas trop ou donner de la tete d'un point de vue syntaxique... peut être devrais je écrire le programme a part dans un autre langage dans ce cas la comment l'insérer dans ma requete ?

merci bcp a ceux qui prendront la peine de lire ce long post

Charly