Отчеты Oracle (6i): получение разницы между двумя элементами из двух разных запросов (отчет по нескольким запросам)

У меня есть отчет Oracle 6i с двумя сложными запросами (Q1 и Q2), связанными каналом передачи данных. Отчет был разработан каким-то другим разработчиком, которого сейчас нет. В отчете отображаются несколько столбцов.

Q1 имеет столбец Total_Issuance, а Q2 имеет столбец Total_Consumment. Я должен отображать их разницу в отчете. Я использую столбец формулы, чтобы получить разницу, а затем привязываю поле отображения к этому столбцу формулы для отображения в отчете.

Но поскольку столбец формулы находится вне обоих запросов, я получаю следующие ошибки.

REP-1517: Столбец «CF_1» ссылается на столбец «Total_Issuance», который имеет несовместимую частоту.

REP-1517: Столбец «CF_1» ссылается на столбец «Total_Consumption», который имеет несовместимую частоту.


person Asif Raza    schedule 22.11.2019    source источник


Ответы (2)


Так же, как столбец формулы находится вне обоих запросов, создайте два дополнительных столбца summary (вне обоих запросов):

  • cs_tot_iss, что в сумме даст total_issuance
  • cs_tot_con, что в сумме даст total_consumption

Теперь измените столбец формулы, чтобы его источником были недавно созданные сводные столбцы, например. пусть это

return :cs_tot_iss + :cs_tot_con;

Что касается макета бумаги: вам не нужно отображать cs_tot_iss или cs_tot_con (поскольку у вас уже есть эти значения через total_issuance и total_consumption), просто добавьте столбец формулы.

person Littlefoot    schedule 22.11.2019
comment
Спасибо, Литтлфут! ваше предложение сработало, но только для первой записи. Оно повторяет одно и то же значение для всех следующих записей. Как исправить дальше, пожалуйста? - person Asif Raza; 22.11.2019

Создайте новое вычисляемое поле для запроса, который является подробным запросом (я предполагаю, что это Q2). В этом вычисляемом поле вы можете просто использовать:

return :Total_Issuance - :Total_Consumption;

для расчета разницы.

person Radagast81    schedule 22.11.2019