SQL-запрос для запуска итогового баланса на основе начальных, кредитных и дебетовых сумм в отчетах Zoho
Я использую отчеты Zoho, в которых у меня есть две таблицы с соответствующими столбцами, как показано ниже:
Основная таблица GL (состоит из начальных сальдо соответствующих кодов счетов GL по состоянию на 01 апреля 2017 года, который является началом финансового года).
Группа пробного баланса (состоит из датовых и дебетовых сумм соответствующих кодов счетов GL)
Исходя из вышеизложенного, теперь я хочу рассчитать итоговый остаток по дате для соответствующих счетов GL, в котором итоговым балансом на определенную дату должен быть начальный баланс для следующей даты транзакции. Я хотел бы иметь результирующие данные ниже моды.
Обратите внимание, что, поскольку я использую Zoho Reports, у него есть ограничения при разработке таблицы запросов только с помощью операторов "SELECT".
Для вышеуказанного требования в настоящее время я создал 3 отдельные таблицы запросов в отчетах Zoho с запросами, как показано ниже:
1-я таблица: Q1_AM
SELECT
"GL Account Code",
"Opening Date",
"Opening Balance",
0 as acc_amt
FROM "GL Master Account"
UNION ALL
SELECT
"GL Account Code",
"Document Date",
0,
sum("Debit Amount" + "Credit Amount")
FROM "Trial Balance 1617"
GROUP BY 1,2,3
2-я таблица: Q2_AM
SELECT
"GL Account Code",
"Opening Date",
sum("Opening Balance") as op_bal,
sum("acc_amt") as acc_amt
FROM "Q1_AM"
GROUP BY 1,2
3-я таблица: TB Group_Op.Db.Cr.Cl_AM (Это конечная выходная таблица, которую я желаю, но значения не такие правильные. Не удалось выяснить, есть ли проблемы с созданными запросами.).
SELECT
t1."GL Account Code" as "GL Account Code",
t1."opening date" as "Opening Date",
sum(if(t1.acc_amt > 0, t1.acc_amt, 0)) as "Debit Amount",
sum(if(t2.acc_amt < 0, t1.acc_amt, 0)) as "Credit Amount",
sum(if(t1."Opening Date" > t2."Opening Date", t2."op_bal" + t2."acc_amt", t2."op_bal")) as "Opening Balance",
sum(t2."op_bal" + t2."acc_amt") as "Cum. Closing"
FROM "Q1_AM" t1 JOIN "Q2_AM" t2 ON t1."GL Account Code" = t2."GL Account Code"
AND t1."opening date" >= t2."Opening Date"
GROUP BY 1,2