需要从贷方和借方账户号码相同的借方总计中减去贷方总计。如果一个值仅存在于借方帐号中,则不需要扣除,只需要获取该值。Mysql减去SUM(金额)DebitAccount从SUM(金额)CreditAccount如果DebitAccount == CreditAccount
一台名为18_7_ChartOfAccounts看起来是这样的:
ID | AccountNumber
-------------
1 | 2310
2 | 2380
另一台名为2_1_journal看起来是这样的:在此基础上总结在Amount
列所有值建议创建查询
ID | Amount | DebitAccount | CreditAccount
-------------------------------------------
1 | 25.00 | 2310 | 2380
2 | 200.00 | 2310 | 2380
3 | 4.00 | 2380 | 2310
4 | 200.00 | 2380 | 2310
5 | 50.00 | 2380 | 2620
其中DebitAccount
值是一样的。
查询执行以下操作:SUM(Amount)
FROM表2_1_journal
WHERE DebitAccount
表2_1_journal
是表一样AccountNumber
18_7_ChartOfAccounts
$query_debit_beginning = "SELECT SUM(j.Amount), j.DebitAccount FROM 18_7_ChartOfAccounts AS c LEFT JOIN 2_1_journal AS j ON (c.AccountNumber = j.DebitAccount) group by j.DebitAccount";
不明白其他如何subtrac一个总和。
需要去输出这样
帐户号码是2310,Value为21.00(25 + 200-4-200)
帐户号码是2380,Value为29.00(4 + 200 + 50 - 25-200)
帐户号码是2620,值为-50.00(0(DebitAccount周转) - 50(CreditAccount营业额))
查询应该是以下:
( SUM(Amount)
FROM表2_1_journal
WHERE DebitAccount
在表2_1_journal
相同AccountNumber
在表18_7_ChartOfAccounts
)
然后
SUM(Amount)
FROM表2_1_journal
WHERE CreditAccount
在表2_1_journal
相同AccountNumber
在表18_7_ChartOfAccounts
然后
如果DebitAccount
等于CreditAccount
,则减去SUM(Amount)
DebitAccount from SUM(Amount)
CreditAccount
不知道如何创建这样的查询。请指教。
基于建议尝试添加选择条件。 这里是修改。代码是否正确?尝试并显示为必要的工作
SELECT
a.AccountNumber,
IFNULL(d.Amount, 0) - IFNULL(c.Amount, 0) AS Amount
FROM 18_7_ChartOfAccounts AS a
LEFT JOIN (
SELECT
DebitAccount, RecordYear,
SUM(Amount) AS Amount
FROM 2_1_journal WHERE RecordYear = 2013
GROUP BY DebitAccount
) d ON (a.AccountNumber = d.DebitAccount)
LEFT JOIN (
SELECT
CreditAccount, RecordYear,
SUM(Amount) AS Amount
FROM 2_1_journal WHERE RecordYear = 2013
GROUP BY CreditAccount
) c ON (a.AccountNumber = c.CreditAccount)
似乎代码是使用帐户进行计算的金额。我得到了[[AccountNumber] => 2310 [Amount] => 0 [AccountNumber] => 2380 [Amount] => 0 [AccountNumber] => 2620 [Amount] => -2620' – user2360831
我的不好。更新的查询。 SELECT应该SUM'amount'字段,而不是CreditAccount或DebitAccount。 – walterquez
现在在Mysql中只有一行'1 | 25.00 | 2310 | 2380'和输出是[[AccountNumber] => 2310 [Amount] => 50.00'和[[AccountNumber] => 2380 [Amount] => -75.00'出现它以某种方式总和2倍一个值... – user2360831