bonjour,
j'ai crée une requête pour avoir un total d'heures + un nombres de (BT) groupés par (secteurs) avec quelques conditions.
elle fonctionne.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
select A.cd_box2, count(A.cd_wo), abs(sum(A.tm_fcast_tech_time))
  from WS A, OCCUPATION B, CM_TRIGGER E, WO F
 Where B.cd_wo(+) = A.cd_wo
  And F.cd_cm_trigger = E.cd_cm_trigger
  And F.cd_wo = A.cd_wo
 And A.CD_WO > 0
 And A.CD_WS > 0
 And A.dt_ws_begin between to_date ('01/06/2009','DD/MM/YYYY')
 And to_date ('30/06/2009','DD/MM/YYYY') /*###*/
 And (A.txt_quotefield not like '%Pièces%')
 And (E.val_nextday between 0 and 100)
 And (A.cd_wows_status = 6)
 And (A.cd_action_type = 'PREV')
 Group by A.cd_box2
order by 1
le résulat est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Résultat : 
 
CD_BOX2     COUNT(A.CD_WO) ABS(SUM(A.TM_FCAST_TECH_TIME))
----------- -------------- ------------------------------
CAGE             21                        2008333
CONCEPT25_    4                         208333
EVB_              7                         925000
FINAL1           15                         858333
FINAL2           43                        2016666
FINAL3           30                        1458330
Je souhaite rajouter dans la requête une conversion pour avoir le total en heures.
Je sais que l'écriture du format en question est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
TRUNC(A.tm_fcast_tech_time/100000)||':'||TO_CHAR(TRUNC(MOD(A.tm_fcast_tech_time, 100000) * 60/100000),'FM00')
Quand j'intègre ce format à ma requête il m'affiche un message d'erreur.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
select A.cd_box2, count(A.cd_wo), abs(sum(TRUNC(A.tm_fcast_tech_time/100000)||':'||TO_CHAR(TRUNC(MOD(A.tm_fcast_tech_time, 100000) * 60/100000),'FM00')))
  from WS A, OCCUPATION B, CM_TRIGGER E, WO F
 Where B.cd_wo(+) = A.cd_wo
  And F.cd_cm_trigger = E.cd_cm_trigger
  And F.cd_wo = A.cd_wo
 And A.CD_WO > 0
 And A.CD_WS > 0
 And A.dt_ws_begin between to_date ('01/06/2009','DD/MM/YYYY')
 And to_date ('30/06/2009','DD/MM/YYYY') /*###*/
 And (A.txt_quotefield not like '%Pièces%')
 And (E.val_nextday between 0 and 100)
 And (A.cd_wows_status = 6)
 And (A.cd_action_type = 'PREV')
 Group by A.cd_box2
order by 1

message d'erreur


select A.cd_box2, count(A.cd_wo), abs(sum(TRUNC(A.tm_fcast_tech_time/100000)||':'||TO_CHAR(TRUNC(MOD
*
ERREUR à la ligne 1 :
ORA-01722: Nombre non valide
Quelqu'un peut-il me dire pourquoi ? Je ne vois pas ou j'ai commis l'erreur
Merci pour votre aide.

Cdlt,