У меня есть 2 независимых запроса, которые обновляют значение в 4 переменных NUMBER
DSL_HOUR_DIVISOR NUMBER (10);
ELEC_HOUR_DIVISOR NUMBER(10);
DSL_HOUR_DIVIDEND NUMBER(10);
ELEC_HOUR_DIVIDEND NUMBER(10);
SELECT SUM(SUB_SUB_ITEM_VALUE_DSL) AS SUB_SUB_ITEM_VALUE_DSL,
SUM(SUB_SUB_ITEM_VALUE_ELEC) AS SUB_SUB_ITEM_VALUE_ELEC
INTO DSL_HOUR_DIVIDEND,ELEC_HOUR_DIVIDEND
FROM (SELECT ITEM_NO,
SUB_ITEM_NO,
SUB_SUB_ITEM_NO,
SUM(SUB_SUB_ITEM_VALUE_DSL) AS SUB_SUB_ITEM_VALUE_DSL,
SUM(SUB_SUB_ITEM_VALUE_ELEC) AS SUB_SUB_ITEM_VALUE_ELEC
FROM REPORT.DY_SUM_DLY_DAILY
WHERE REPORT_DATE>='01-Mar-2020'
AND REPORT_DATE<='07-Mar-2020'
AND SUB_ITEM_NO=5.01
GROUP BY ITEM_NO,
SUB_ITEM_NO,
SUB_SUB_ITEM_NO);
SELECT SUM(SUB_SUB_ITEM_VALUE_DSL) AS SUB_SUB_ITEM_VALUE_DSL,
SUM(SUB_SUB_ITEM_VALUE_ELEC) AS SUB_SUB_ITEM_VALUE_ELEC
INTO DSL_HOUR_DIVISOR,ELEC_HOUR_DIVISOR
FROM (SELECT ITEM_NO,
SUB_ITEM_NO,
SUB_SUB_ITEM_NO,
SUM(SUB_SUB_ITEM_VALUE_DSL) AS SUB_SUB_ITEM_VALUE_DSL,
SUM(SUB_SUB_ITEM_VALUE_ELEC) AS SUB_SUB_ITEM_VALUE_ELEC
FROM REPORT.DY_SUM_DLY_DAILY
WHERE REPORT_DATE>='01-Mar-2020'
AND REPORT_DATE<='07-Mar-2020'
AND SUB_ITEM_NO IN (5.04,5.05)
GROUP BY ITEM_NO, SUB_ITEM_NO, SUB_SUB_ITEM_NO);
UPDATE REPORT.GBL_TMP_SUMMARY_CNT A
SET CY_DSL_CNT=ROUND(DSL_HOUR_DIVIDEND/DSL_HOUR_DIVISOR*100,2),
CY_ELEC_CNT=ROUND(ELEC_HOUR_DIVIDEND/ELEC_HOUR_DIVISOR*100,2)
WHERE A.ITEM_NO=5
AND A.SUB_ITEM_NO=5.06
AND A.SUB_SUB_ITEM_NO='B';
COMMIT;
Я попытался отладить код, проверив, присваивается ли какое-либо значение этим 4 переменным, я даже проверил вычисление процента, которое обновляет столбец, и всем 4 переменным присваивается значение. Это были напечатанные значения
5.06 b DSL_HOUR_DIVIDEND---------------5555187
5.06 b ELEC_HOUR_DIVIDEND---------------6923284
5.06 b DSL_HOUR_DIVISOR---------------5575697
5.06 b ELEC_HOUR_DIVISOR---------------6937356
5.06 b Current year Diesl % ---------------99.63
5.06 b Current year Electric % ---------------99.8
Но в таблице GBL_TMP_SUMMARY_CNT значения не обновляются, пожалуйста, сообщите мне, как решить эту проблему. Оба столбца CY_DSL_CNT & CY_ELEC_CNT имеют тип NUMBER (10,2) .