Bonjour, j'ai un probleme pour l'execution d'une requête que voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
string CallTable = "SELECT e.nom,aff.heuresprev, CASE TRUE WHEN sum(duree) = NULL THEN 0 ELSE sum(duree) END heureseff, aff.avancement, "
				+"max(i.datejour) + interval '0' month dateinter, "
				+"CASE TRUE WHEN sum(duree) = NULL THEN 0 ELSE if((sum(duree)+ round(((('1'-aff.avancement)*'100'*sum(duree))/(aff.avancement*'100')),'2') <= (heuresprev+'0.00001')),'',' ') END etat, "
				+"CASE TRUE WHEN sum(duree) = NULL THEN 0 ELSE ifnull(round(((('1'-aff.avancement)*'100'*sum(duree))/(aff.avancement*'100')),'2'),heuresprev) END resteafaire, "
				+"a.idtypeaffaire "
				+"FROM affaire a "
				+"JOIN affecter aff ON aff.idaffaire = a.idaffaire "
				+"JOIN employe e ON e.idemploye = aff.idemploye "
				+"LEFT OUTER JOIN intervenir i ON (e.idemploye = i.idemploye and a.idaffaire = i.idaffaire and i.datejour < '"+dateprec+"') "
				+"WHERE a.idaffaire = '"+this.id+"' "
				+"group by e.nom ;";
En fait elle est censée afficher où en est l'état d'avancement d'un intervenant (qui pointe ses heures) sur une affaire. Jusqu'à présent cela ne géré pas le fait que plusieurs intervenants peuvent ne pas avoir tous commencés à travailler sur une affaire. Je voudrais gérer le fait que le calcul de l'avancement (en%) et l'affichage dans le logiciel (en C#) tiennent compte que l'intervenant puisse être à 0 pr telle affaire. Avec le code que je fais là, cela plante le logiciel. Une idée
Merci
Manue