0

クレジットとデビットの口座番号が同じ場合、デビットの合計からクレジットの合計を差し引く必要があります。値が借方口座番号のみに存在する場合、減算するものはなく、値を取得するだけで済みます。

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_journalWHEREDebitAccountはテーブル内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_journalWHEREDebitAccountはテーブル内2_1_journalと同じAccountNumberです18_7_ChartOfAccounts)

それから

SUM(Amount)FROM テーブル テーブル内の2_1_journalWHERECreditAccountはテーブル内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)
4

2 に答える 2

6
SELECT
    a.AccountNumber,
    IFNULL( d.Amount, 0 ) - IFNULL( c.Amount, 0 ) AS Amount

FROM 18_7_ChartOfAccounts AS a

LEFT JOIN (
    SELECT
        DebitAccount,
        SUM( Amount ) AS Amount
    FROM 2_1_journal
    GROUP BY DebitAccount
) d ON a.AccountNumber = d.DebitAccount

LEFT JOIN (
    SELECT
        CreditAccount,
        SUM( Amount ) AS Amount
    FROM 2_1_journal
    GROUP BY CreditAccount
) c ON a.AccountNumber = d.CreditAccount
于 2013-07-01T13:57:40.017 に答える