У меня есть две таблицы, в которых хранятся данные о действиях пользователя (почти точно такая же структура).Пользователи могут быть в одной из таблиц, но не в другой или в обеих таблицах (или ни в одной).
У меня есть два запроса, которые запрашивают обе таблицы через UNION ALL.Мне нужно одинаковое количество записей в каждом запросе, причем ROWNUM одинаково для каждой пользовательской записи между обоими наборами данных.
Я отменяю объединение между двумя запросами, заказываю их одинаково.Тем не менее, rownums разные, хотя данные должны быть получены в том же порядке.Любое понимание будет с благодарностью.
(я передаю эти данные в компонент графика \ диаграммы, в котором ROWNUM требуется для правильной работы)
Запрос 1
SELECT ROWNUM, cnt, opno FROM (
SELECT SUM(fieldct) cnt, opno
FROM operchgeedp
WHERE opno < 997
AND LOWER(prognm) = 'eedpmain.exe'
AND TRUNC(begdtt) BETWEEN DATE'2019-02-01'
AND TRUNC(SYSDATE)
GROUP BY opno
UNION ALL
SELECT 0 cnt, opno
FROM operchgprv
WHERE opno NOT IN (
SELECT opno
FROM operchgeedp
WHERE opno < 997
AND LOWER(prognm) = 'eedpmain.exe'
AND TRUNC(begdtt) BETWEEN DATE'2019-02-01'
AND TRUNC(SYSDATE)
)
AND TRUNC(begdtt) BETWEEN DATE'2019-02-01'
AND TRUNC(SYSDATE)
AND opno < 997
GROUP BY opno )
ORDER BY opno`
Запрос 2
SELECT ROWNUM, cnt, opno FROM (
SELECT SUM(fieldct) cnt, opno
FROM operchgprv
WHERE opno < 997
AND LOWER(prognm) = 'prvmain.exe'
AND TRUNC(begdtt) BETWEEN DATE'2019-02-01'
AND TRUNC(SYSDATE)
GROUP BY opno
UNION ALL
SELECT 0 cnt, opno
FROM operchgeedp
WHERE opno NOT IN (
SELECT opno
FROM operchgprv
WHERE opno < 997
AND LOWER(prognm) = 'prvmain.exe'
AND TRUNC(begdtt) BETWEEN DATE'2019-02-01'
AND TRUNC(SYSDATE)
)
AND TRUNC(begdtt) BETWEEN DATE'2019-02-01'
AND TRUNC(SYSDATE)
AND opno < 997
GROUP BY opno )
ORDER BY opno`

