クレジットとデビットの口座番号が同じ場合、デビットの合計からクレジットの合計を差し引く必要があります。値が借方口座番号のみに存在する場合、減算するものはなく、値を取得するだけで済みます。
18_7_ChartOfAccounts という 1 つのテーブルは次のようになります。
ID | AccountNumber
-------------
1 | 2310
2 | 2380
2_1_journal という別のテーブルは次のようになります。
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
アドバイスに基づいてAmount
、値DebitAccount
が同じ列のすべての値を合計するクエリを作成しました。
クエリは次のことを行います: SUM(Amount)
FROM テーブル テーブル内の2_1_journal
WHEREDebitAccount
はテーブル内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";
ある合計を他の合計から引く方法がわかりません。
このような出力を取得する必要があります
口座番号は 2310、値は 21.00 (25+200-4-200)
口座番号は 2380、値は 29.00 (4+200+50-25-200)
口座番号は 2620、値は -50.00 (0(借方口座の回転率) - 50(貸方口座の回転率))
クエリは次のようになります。
(テーブル内のSUM(Amount)
FROM テーブル2_1_journal
WHEREDebitAccount
はテーブル内2_1_journal
と同じAccountNumber
です18_7_ChartOfAccounts
)
それから
SUM(Amount)
FROM テーブル テーブル内の2_1_journal
WHERECreditAccount
はテーブル内2_1_journal
と同じAccountNumber
です18_7_ChartOfAccounts
それから
DebitAccount
が と等しい場合、 CreditAccount からDebitAccountをCreditAccount
引きます。SUM(Amount)
SUM(Amount)
そのようなクエリを作成する方法がわかりません。ご意見をお聞かせください。
アドバイスに基づいて、選択の条件を追加しようとしました。こちらは改造あり。コードは正しいですか?試してみて、必要に応じて機能するようです
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)