Bonjour,

Je souhaite afficher le résultat quand la variation en pourcentage est inférieur a -10%, lorsque je fais mon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
HAVING ((SUM("DATA"."Quantités du trimestre en cours")-SUM("DATA"."Quantités du trimestre précédent"))/SUM("DATA"."Quantités du trimestre précédent")*100)<-10
le message d'erreur suivant s'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Could not execute 'SELECT SUM("DATA"."Numéro de la facture du trimestre précédent")"Numéro de la facture du trimestre ...' in 26 ms 268 µs . 
[304]: division by zero undefined: search table error:  [6859] AttributeEngine: divide by zero;int lt(decfloat times(decfloat [here]divide(decfloat decfloat(fixed16_23.6 sqlsub(fixed16_23.6 fixed_16(fixed12_22.6 "COL$6$$sum$"), fixed16_23.6 fixed_16(fixed12_22.6 "COL$5$$sum$"))), decfloat decfloat(fixed12_22.6 "COL$5$$sum$")), decfloat '100'), decfloat '-10'),(COL$5$$sum$ = 0.000000[fixed12_22.6], COL$6$$sum$ = 2.000000[fixed12_22.6]); checkNull false
. Cela signifie qu'il ne peut pas faire une division lorsque le chiffre est 0.

Avez vous une solution pour remédier à ce problème?

Voir requête ci-dessous :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
SELECT SUM("DATA"."Numéro de la facture du trimestre précédent")"Numéro de la facture du trimestre précédent"
,SUM("DATA"."Numéro de la facture du trimestre en cours") "Numéro de la facture du trimestre en cours",
"DATA"."CardName","DATA"."CardCode", "DATA"."ItemCode",SUM("DATA"."Quantités du trimestre précédent")"Quantités du trimestre précédent",
SUM("DATA"."Quantités du trimestre en cours") "Quantités du trimestre en cours", ((SUM("DATA"."Quantités du trimestre en cours")-SUM("DATA"."Quantités du trimestre précédent"))/SUM("DATA"."Quantités du trimestre précédent")*100) "Variation en pourcentage"
 
FROM(
SELECT SUM(T0."DocEntry") "Numéro de la facture du trimestre précédent",0 "Numéro de la facture du trimestre en cours",T1."CardName",T1."CardCode", 
T0."ItemCode",SUM(T0."Quantity")"Quantités du trimestre précédent",0 "Quantités du trimestre en cours"
FROM INV1 T0 INNER JOIN OINV T1 ON T0."DocEntry"=T1."DocEntry"
WHERE CASE WHEN EXTRACT(MONTH FROM CURRENT_DATE) BETWEEN 01 and 03 
AND EXTRACT(YEAR FROM T1."DocDueDate") = EXTRACT(YEAR FROM CURRENT_DATE) - 1
AND EXTRACT(MONTH FROM T1."DocDueDate") BETWEEN 10 AND 12
THEN 1
WHEN EXTRACT(MONTH FROM CURRENT_DATE) BETWEEN 04 AND 06
AND EXTRACT(MONTH FROM T1."DocDueDate") BETWEEN 01 AND 03 
THEN 1
WHEN EXTRACT(MONTH FROM CURRENT_DATE) BETWEEN 07 AND 09
AND EXTRACT(MONTH FROM T1."DocDueDate") BETWEEN 04 AND 06 
THEN 1
WHEN EXTRACT(MONTH FROM CURRENT_DATE) BETWEEN 10 AND 12
AND EXTRACT(MONTH FROM T1."DocDueDate") BETWEEN 07 AND 09 
THEN 1
ELSE 0
END = 1
AND T1."U_OB1_FactRecAuto"='OUI'
GROUP BY T1."CardName",T1."CardCode", T0."ItemCode"
 
UNION
 
SELECT 0"Numéro de la facture du trimestre précédent",SUM(T0."DocEntry") "Numéro de la facture du trimestre en cours",
T1."CardName",T1."CardCode", T0."ItemCode",0" Quantités du trimestre précédent",SUM(T0."Quantity")" Quantités du trimestre en cours"
FROM INV1 T0 INNER JOIN OINV T1 ON T0."DocEntry"=T1."DocEntry"
WHERE QUARTER(T1."DocDueDate") = QUARTER(CURRENT_DATE) AND YEAR(T1."DocDueDate")=YEAR(CURRENT_DATE)
AND T1."U_OB1_FactRecAuto"='OUI'
GROUP BY T1."CardName",T1."CardCode", T0."ItemCode") "DATA"
GROUP BY "DATA"."CardName","DATA"."CardCode","DATA"."ItemCode"
HAVING ((SUM("DATA"."Quantités du trimestre en cours")-SUM("DATA"."Quantités du trimestre précédent"))/SUM("DATA"."Quantités du trimestre précédent")*100)<-10