#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)