Как суммировать 2 столбца в безымянной таблице, которую я построил из других таблиц

#sql #oracle #oracle-sqldeveloper

Вопрос:

Я построил таблицу, взяв столбцы из нескольких других таблиц, которые все связаны теми или иными общими столбцами. Теперь мне нужно выполнить простое умножение на 2 данных в 2 столбцах, содержащихся в построенной мной таблице. Я вижу примеры синтаксиса, такого как этот: ВЫБЕРИТЕ имя, цену*количество КАК total_price ИЗ покупки;

однако я не знаю, что добавить сюда для таблицы «ОТ», поскольку я выполняю эту арифметику с 2 столбцами из построенной мной таблицы, у которой, насколько мне известно, нет имени (если только нет какого-то имени по умолчанию, которое вы можете использовать для этих таблиц, которые мы строим? Я очень новичок в SQL..).

Вот мой код до сих пор:

 select A.*,
    A.TRANSACTION_ID,
    B.AMOUNT,
    B.CHARGE_ID,
    C.CHARGE_TYPE_ID,
    D.CHARGE_GROUP,
    E.EXCHANGE_ID,
    E.TRADE_DATE,
    timestamp_table.timeformated
    
FROM REPLDOADM.IRE_ESTIMATE_TRANS_MAP A
left join REPLDOADM.IRE_CHARGES_ESTIMATE B ON A.ESTIMATE_ID = B.ESTIMATE_ID
left join REPLDOADM.IRE_CHARGES_LU C ON B.CHARGE_ID = C.CHARGE_ID
left join REPLDOADM.ire_charge_types_lU D ON C.CHARGE_TYPE_ID = D.CHARGE_TYPE_ID
left join REPLDOADM.VW_IRE_TRADE_TRANSACTIONS E ON A.TRANSACTION_ID = E.TRANS_ID
left join (
select to_char(create_ts, 'HH24:MI:SS') as timeformated, TRANS_ID
from REPLDOADM.VW_IRE_TRADE_TRANSACTIONS) timestamp_table ON (A.TRANSACTION_ID = 
timestamp_table.TRANS_ID)
 

На моих выходных данных у меня есть 2 столбца с именами RATE и BASIS_TYPE, которые мне нужно комбинировать по строкам и получать выходные данные в новом столбце. Эти 2 колонки были взяты из REPLDOADM.Первоначально IRE_ESTIMATE_TRANS_MAP.

Есть какие-нибудь мысли?

Ответ №1:

Я думаю, что вам просто нужно это —

 select A.*,
    A.TRANSACTION_ID,
    B.AMOUNT,
    B.CHARGE_ID,
    C.CHARGE_TYPE_ID,
    D.CHARGE_GROUP,
    E.EXCHANGE_ID,
    E.TRADE_DATE,
    timestamp_table.timeformated,
    A.RATE * A.BASIS_TYPE CALC_RATE
FROM REPLDOADM.IRE_ESTIMATE_TRANS_MAP A
left join REPLDOADM.IRE_CHARGES_ESTIMATE B ON A.ESTIMATE_ID = B.ESTIMATE_ID
left join REPLDOADM.IRE_CHARGES_LU C ON B.CHARGE_ID = C.CHARGE_ID
left join REPLDOADM.ire_charge_types_lU D ON C.CHARGE_TYPE_ID = D.CHARGE_TYPE_ID
left join REPLDOADM.VW_IRE_TRADE_TRANSACTIONS E ON A.TRANSACTION_ID = E.TRANS_ID
left join (
select to_char(create_ts, 'HH24:MI:SS') as timeformated, TRANS_ID
from REPLDOADM.VW_IRE_TRADE_TRANSACTIONS) timestamp_table ON (A.TRANSACTION_ID = 
timestamp_table.TRANS_ID)