Делитель равен нулю, нужна инструкция с указанием дела - PullRequest
0 голосов
/ 17 апреля 2019

Это мой запрос, и я получаю, что делитель ошибки равен нулю, я знаю, что мне нужно создать его, поскольку оператор case только что попробовал несколько вещей и не может заставить его работать, заранее спасибо.

NVL(ROUND(((SELECT PC.BUCKET_ACCUM_COST                                          
FROM   PART_CB PC                                                    WHERE  
PART_CB_NO = '201'                                                                          
AND PC.PART_NO = I.PART_NO
                                                                AND 
PC.CONTRACT = P.CONTRACT
                                                                AND 
PC.TOP_LEVEL_PART_NO || '' =

Z_BEL_FINANCE_API.GET_PART_COST_TOP_PART_NO(P.CONTRACT, P.PART_NO, 
P.COST_SET, P.ALTERNATIVE_NO,

P.ROUTING_ALTERNATIVE_NO)
                                                                AND 
PC.COST_SET = P.COST_SET
                                                                AND 
PC.COST_BUCKET_ID != 'SYS'
                                                                AND 
PC.TOP_ALTERNATIVE_NO =

Z_BEL_FINANCE_API.GET_PART_COST_TOP_ALT_NO(P.CONTRACT, P.PART_NO, 
P.COST_SET, P.ALTERNATIVE_NO,

P.ROUTING_ALTERNATIVE_NO)
                                                                AND

PC.TOP_ROUTING_NO = 
Z_BEL_FINANCE_API.GET_PART_COST_TOP_ROUTING_NO(P.CONTRACT, P.PART_NO, 
P.COST_SET, P.ALTERNATIVE_NO,

P.ROUTING_ALTERNATIVE_NO)
                                                                AND

PC.BUCKET_SEQ = Z_BEL_FINANCE_API.GET_PART_COST_BUCKET_SEQ(P.CONTRACT, 
P.PART_NO, P.COST_SET, P.ALTERNATIVE_NO,

P.ROUTING_ALTERNATIVE_NO)) /
                                             (SELECT WC_RATE
                                                 FROM   WCT
                                                 WHERE  WORK_CENTER_NO = 'COST1'
                                                                AND COST_SET = '1'
                                                                AND CONTRACT = P.CONTRACT)), 4), 0) MACHINE_SETUP_TIME,

1 Ответ

1 голос
/ 17 апреля 2019

Единственное деление в этом беспорядке здесь:

/ (SELECT WC_RATE FROM WCT ...)

Если вы не хотите делить на ноль, вам придется справиться с этим.

Например, используйте DECODE (или CASE) и - если вы хотите получить 0 в качестве результата, разделите на очень большое число (например, 1E99)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...