Я пытаюсь присоединить подзапрос к подзапросу предложения from. Однако при этом возникает следующая ошибка:
Ошибка SQL [208] [S0002]: недопустимое имя объекта «транзакции»
Я пытаюсь переписать несколько запросов впоместите их в 1 запрос, потому что запрос почти идентичен, отличается только предложение where.
Вот одна из моих попыток:
SELECT
transactions.OpeningDateFormatted,
(SELECT SUM(transactions.amount)
FROM transactions
WHERE transactions.transactiontypeid = 5) AS AdjustmentSum,
(SELECT SUM(transactions.amount)
FROM transactions
WHERE transactions.transactiontypeid = 1) AS InterestSum
FROM
(SELECT
FORMAT(files.OpeningDate, 'yyyy-MM') as OpeningDateFormatted,
amount,
transactiontypeid
FROM
FilesTransactions
INNER JOIN
files ON files.id = filestransactions.exid
WHERE
FilesTransactions.TransactionDate BETWEEN '2015-10-15' AND '2019-10-15'
AND ExID IN (SELECT id FROM files
WHERE files.OpeningDate BETWEEN '2015-10-01' AND '2019-09-30'
AND files.CustomerID = 3258)) transactions
GROUP BY
transactions.OpeningDateFormatted
Я также пытался сделать следующее, ноон дает мне одну и ту же сумму за каждый месяц:
select
FORMAT(files.OpeningDate, 'yyyy-MM') as OpeningDateFormatted,
(select sum(FilesTransactions.Amount) as CollectedSum from FilesTransactions f2 join FilesTransactions on FilesTransactions.id=f2.id where f2.transactiontypeid = 5 and FORMAT(f2.TransactionDate, 'yyyy-MM') like FORMAT(FilesTransactions.TransactionDate, 'yyyy-MM') )
FROM
FilesTransactions
inner join files on files.id = filestransactions.exid
where
FilesTransactions.TransactionDate between '2015-10-15' and '2019-10-15' and
ExID in
(
select id from files where files.OpeningDate between '2015-10-15' and '2019-10-15' and files.CustomerID = 3258
)
GROUP BY
FORMAT(FilesTransactions.TransactionDate, 'yyyy-MM'), FORMAT(files.OpeningDate, 'yyyy-MM')
Я хотел бы получить один запрос, который дает мне следующий
OpeningDateFormatted | AdjustmentSum | InterestSum
2015-11 0 45
2015-12 45.25 7
... ... ...