select tt.threshold_id
from (select sum(amount) over (partition by tt.threshold_type
order by tt.threshold_type ) amt
from cash_transactions) cash,
thresholds tt
where tt.threshold_amount < cash.amt
rdms - это oracle, ошибка:
" ORA-00904: "TT"."THRESHOLD_TYPE": invalid identifier"
, что я хочу сделать с этим запросом:
- таблица порогов содержит тип порога столбца, которыйсодержит имя столбца таблицы операций с наличными
- И для каждой записи из таблицы порогов необходимо сравнить группу сумм (сумм) по типу порога из таблицы операций с наличными.
- и суммуизвлечено сравнивается с threshold_amount таблицы порогов
- , и мне нужно выбрать порог_id
Таблица порогов:
Threshold_id Threshold_type Threshold_amount
============================================================
threshold_1 p_id 450
threshold_2 p_id,to_acc_main_num 100
Таблица транзакций наличными:
Tran_inst_id p_id amount to_acc_main_num
=================================================
1 E1 100 123
2 E2 200 5765
3 E1 200 687
4 E2 300 890
5 E1 100 462
ЖЕЛАЕМЫЙ ВЫХОД:
Давайте возьмем первую выборку: первая запись из таблицы порогов
Threshold_id Threshold_type Threshold_amount
============================================================
threshold_1 p_id 100000
1. теперь тип_порога равен p_id ок 2.Soмне нужно сгруппировать по pid из таблицы cash_transactions.3. так что желаемый результат из этого (но я должен взять сумму только на основе p_id), а не tran_inst_id в этом случае
Tran_inst_id p_id sum(amount)
======================================
1 E1 400
2 E2 500
3 E1 400
4 E2 500
5 E1 400
1. Теперь количество каждой записи выше сравнивается с величиной threshold_1запись.2.so 450 threshold_amount для threshold_1 сравнивается со всеми вышеупомянутыми записями 3.so требуемый результат будет
theshold_id Tran_inst_id
==================================
thresold_1 2
threshold_1 4
- the above result is for first record of threshold table ,now the same continues for the second record.
EDIT: Предположим, если threshold_type имеет значение null, тогда нам не нужно включать разделение по частям взапрос, то как его можно получить?