Я почему-то сомневаюсь, что эти таблицы содержат только те столбцы, которые вы упомянули. Им обоим не хватает какого-то ID
, что сделало бы возможным объединение. Иначе это просто не имело бы смысла.
Например (вместе с некоторыми примерами данных):
SQL> create table product (product_id number, price number);
Table created.
SQL> create table bill (product_id number, quantity number, total_price number);
Table created.
SQL> insert all
2 into product (product_id, price) values (1, 100)
3 into product (product_id, price) values (2, 200)
4 into bill (product_id, quantity) values (1, 5)
5 select * from dual;
3 rows created.
SQL> select * from product;
PRODUCT_ID PRICE
---------- ----------
1 100
2 200
SQL> select * from bill;
PRODUCT_ID QUANTITY TOTAL_PRICE
---------- ---------- -----------
1 5
SQL> commit;
Commit complete.
Чтобы установить total_price
значение столбца, вы можете использовать UPDATE
SQL> update bill b set
2 b.total_price = (select b.quantity * p.price
3 from product p
4 where p.product_id = b.product_id
5 );
1 row updated.
SQL> select * From bill;
PRODUCT_ID QUANTITY TOTAL_PRICE
---------- ---------- -----------
1 5 500
SQL> rollback;
Rollback complete.
или MERGE
:
SQL> merge into bill b
2 using (select p.product_id, p.price
3 from product p
4 ) x
5 on (b.product_id = x.product_id)
6 when matched then update set b.total_price = b.quantity * x.price;
1 row merged.
SQL> select * From bill;
PRODUCT_ID QUANTITY TOTAL_PRICE
---------- ---------- -----------
1 5 500
Поскольку вы пометили вопрос тегом Apex, неясно, что у вас есть на самом деле. Что это за страница? Если это один из отчетов (классический или интерактивный), вы можете объединить таблицы в product_id
как
SQL> select b.product_id, b.quantity, p.price, b.quantity * p.price as total_price
2 from product p join bill b on b.product_id = p.product_id;
PRODUCT_ID QUANTITY PRICE TOTAL_PRICE
---------- ---------- ---------- -----------
1 5 100 500
Если это страница формы, используйте динамическое действие, которое устанавливает значение при изменении P1_PRICE
и / или P1_QUANTITY
; Предположим, что это страница 1, тогда вы установите P1_TOTAL_PRICE
на
:P1_PRICE * :P1_QUANTITY
В основном, довольно много вариантов. То, что вы будете использовать, зависит от того, что у вас есть на самом деле.