Мне нужно рассчитать ежедневные непогашенные продажи (DSO) для моего финансового директора, торгуя за 12 финансовых периодов.DSO рассчитывается следующим образом:
ar_balance / (credit_sales_sum / days_in_period)
Вот мой запрос на получение ar_balance, сгруппированный по периоду:
SELECT EXTRACT(month FROM v_glacct_ybb_all_periods_cumm.glperiods_end_date) AS month,
SUM(ABS(v_glacct_ybb_all_periods_cumm.period_balance)) as ar_balance
FROM v_glacct_ybb_all_periods_cumm
WHERE (v_glacct_ybb_all_periods_cumm.glperiods_end_date BETWEEN
add_months(TRUNC(sysdate, 'month'), -12) AND TRUNC(sysdate, 'month'))
AND (acct='1100-00-10-00')
GROUP by v_glacct_ybb_all_periods_cumm.glperiods_end_date
ORDER by v_glacct_ybb_all_periods_cumm.glperiods_end_date
Это дает мне результат, который выглядит примерно так:
MONTH AR_BALANCE
----- -----------
9 $102,408.33
10 $163,715.86
11 $114,683.96
12 $198,223.75
1 $155,598.19
2 $123,121.00
etc etc
Теперь вот мой запрос для получения credit_sales_sum, разделенного на days_in_period, снова сгруппированного по периоду:
SELECT EXTRACT(month FROM v_glacct_ybb_all_periods_cumm.glperiods_end_date) AS month,
ROUND((sum(abs(v_glacct_ybb_all_periods_cumm.period_balance))) /
(EXTRACT(day FROM v_glacct_ybb_all_periods_cumm.glperiods_end_date)),2) AS sales_calc
FROM v_glacct_ybb_all_periods_cumm
WHERE(v_glacct_ybb_all_periods_cumm.glperiods_end_date BETWEEN add_months(TRUNC(sysdate, 'month'), -12)
AND TRUNC(sysdate, 'month'))
AND (acct='4080-00-10-00' OR acct='4090-00-10-00' OR acct='4095-00-10-00' OR acct='4096-00-10-00')
GROUP BY v_glacct_ybb_all_periods_cumm.glperiods_end_date
ORDER BY v_glacct_ybb_all_periods_cumm.glperiods_end_date
Это дает мне многострочный результат, аналогичный первому запросу:
MONTH SALES_CALC
----- ----------
9 $48,975.43
10 $44,167.89
11 $48,997.81
12 $49,493.17
1 $48,218.43
2 $52,523.84
etc etc
Что сейчас приводит к моей проблеме.Я не знаю, как разделить результаты столбца AR_BALANCE первого запроса на столбец SALES_CALC второго запроса, а также включить столбец MONTH как есть.Я пробовал решение из этого вопроса , но я получаю сообщение об ошибке "Поле '=' неизвестного типа".После нескольких часов поисков у меня закончились идеи.Как это можно сделать?