SQL-запрос для запуска итогового баланса на основе начальных, кредитных и дебетовых сумм в отчетах Zoho - PullRequest
0 голосов
/ 26 августа 2018

Я использую отчеты Zoho, в которых у меня есть две таблицы с соответствующими столбцами, как показано ниже:

Основная таблица GL (состоит из начальных сальдо соответствующих кодов счетов GL по состоянию на 01 апреля 2017 года, который является началом финансового года).

GL Master Table

Группа пробного баланса (состоит из сумм дебетовых и кредитных сумм соответствующих кодов счетов GL)

Trial Balance Group

Исходя из вышеизложенного, теперь я хочу рассчитать итоговый остаток по дате для соответствующих счетов GL, в котором итоговым балансом на конкретную дату должен быть начальный баланс для следующей даты транзакции. Я хотел бы иметь результирующие данные ниже моды.

Trial Balance Result

Обратите внимание, что, поскольку я использую 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 
...