У меня есть 2 таблицы, Assets
и Main
.Я хочу создать запрос, который будет содержать транзакции в Main
, сгруппированные по каждой учетной записи в Assets
.Но есть одна загвоздка: иногда amt
нужно суммировать как положительное, а иногда как отрицательное.
В Assets
у меня есть столбцы Account
и Descript
.Account
содержит "1001" и другие как текст;Descript
- это просто текст.
Account Descript
--------------------------
1001 Cash
1101 Receivable
В Main
у меня есть Amt
, Ac1
и Ac2
.
Amt
содержит суммычто нам нужно сложить Ac1
и Ac2
хранить номера счетов из Assets
как текст
В Main
, когда учетная запись помечена в Ac1
транзакция является положительной для этого аккаунта.Когда учетная запись помечена в Ac2
, сумма транзакции является отрицательной для этого счета.
Скажем, для одной записи в Main:
- У вас -1000,00 дюймаAmt ", у вас есть" 1001 "в" Ac1 "и" 1101 "в" Ac2 ".
- У вас 2000,00 в" Amt ", у вас есть" 1001 "в" Ac1 "и" 1101 "в "Ac2".
Данные:
Amt Ac1 Ac2
-------------------
-1000 1001 1101
2000 1001 1101
, поэтому ожидаемый результат должен быть:
Account Descrip TtlAmt
-------------------------------
1001 Cash 1000.00
1101 Receivable -1000.00
У меня есть код, но я 'Я не уверен, что это полезно.
SELECT
Asset.Account, Asset.Descrip AS Expr1,
SUM(Main.Amt) AS SumOfAMT, SUM(Main.Amt) AS Expr2
FROM
Asset
LEFT JOIN
Main ON (Asset.ACCOUNT = Main.AC2) OR (Asset.ACCOUNT = Main.AC1)
GROUP BY
Asset.Account, Asset.Descrip;
Просто чтобы прояснить ситуацию, у меня также есть таблицы с названиями "Ответственность", "Расходы" и т. д. Но я чувствовал, что здесь мы можем сосредоточиться только на одном запросе., так как все остальное должно встать на свои места с некоторыми указаниями.
Я знаю, что это не имеет ничего общего с проблемой, но в Excel я использую следующую формулу для достижения этой цели.
SUM(SUMIF([sum range], [criteria range], [criteria]), SUMIF([sum range], [criteria range], [criteria])*-1)
Я подумал, что может быть полезно объяснить мою конечную цель.