Я пытался объединить результаты двух запросов, имеющих общее поле, я просмотрел несколько примеров, которые люди приводили ранее в похожих вопросах и ответах, но, похоже, не может заставить их работать на меня.
У меня есть два запроса, которые в основном предоставили Account_ID, Specific_Transaction_Type_Amount, Transaction_Date в качестве вывода из первого запроса, а затем второй запрос выводит Account_ID, Account_Value .
Второй запрос немного сложен, так как он должен искать идентификатор элемента счета, самую последнюю дату цены для этого элемента, цену для этой даты цены, а затем суммировать количество этого элемента, умноженное на ценуэлемент, сгруппированный по идентификатору учетной записи.
Итак, первый запрос выглядит примерно так:
Select distinct
ACCOUNT_NUMBER
,TrANSACTION_AMOUNT
,TRANSACTION_DATE
from CLIENT CL
left join
CLIENT_ACCOUNT_LINK CAL on CL.CLIENT_ID = CAL.CAL_CLIENT_ID
left join
ACCOUNT A on CAL.CAL_ACCOUNT_ID = A.ACCOUNT_ID
left join
ACCOUNT_TYPE AT on A.ACCOUNT_TYPE_ID = AT.ACCOUNT_TYPE_ID
left join
ACCOUNT_TRANSACTION ATR on A.ACCOUNT_ID = ATR.ACCOUNT_ID
WHERE
AT.ACCOUNT_TYPE = 'ACCOUNTYPE2'
AND ATR.TRANSACTION_TYPE = 'TRANSACTIONTYPE6'
Второй запрос выглядит примерно так:
select distinct
A.ACCOUNT_NUMBER
,SUM(AB.ITEM_QTY * PR.ITEM_PRICE) OVER (PARTITION BY A.ACCOUNT_ID) as TotalValue
from ACCOUNT A
join ACCOUNT_BALANCE AB on A.ACCOUNT_ID = AB.ACCOUNT_ID
join ITEM_LIST IL on AB.ITEM_ID = IL.ITEM_ID
join PRICE_DATE PD on IL.ITEM_ID= PD.ITEM_ID
join CODE_LOOKUP cODE on PD.PRICE_STATUS_CODE = CODE.CODE_ID AND CODE.DESCRIPTION = 'ACTIVE'
AND PD.PRICE_DATE = (SELECT MAX(PD2.PRICE_DATE)
FROM PRICE_DATE PD2
WHERE PD2.ITEM_ID = PD.ITEM_ID
AND PD2.PRICE_STATUS_CODE = CODE.CODE_ID
AND sprcp.prcp_effective_date < sysdate + 1)
join PRICE PR on PD.PRICE_ID = PRICE_PRICE_DATE_ID
join PRICE_TYPE PT on PR.PRICE_TYPE_ID = PT.PRICE_TYPE_ID
Итак, яполучить два результата:
ACCOUNT_ID TRANSACTION_AMOUNT TRANSACTION_DATE
_____________________________________________________
123456789 500.23 07/02/2019
ACCOUNT_ID TOTAL_VALUE
____________________________
123456789 24365.48
Мне бы хотелось, чтобы столбец TOTAL_VALUE
из запроса 2 появился в запросе 1. Если я объединю два запроса в один, запрос будет запущенв течение долгого времени, прежде чем я получаю сообщение об ошибке памятиЕсли я запускаю их отдельно, они занимают пару минут, но я получаю результаты без проблем
Я пытался, основываясь на предыдущих примерах, делать что-то вроде:
SELECT *
FROM (QUERY1) AS Q1
LEFT JOIN (QUERY2) AS Q2
on Q1.A.ACCOUNT_ID = Q2.A.ACCOUNT_ID
При попытке выполнить этот запрос я получаю синтаксическую ошибку, ему явно не нравится псевдоним запроса