次の3つのテーブルがあります
- acc_chart_of_accounts
- acc_chart_of_sub_accounts
- acc_posting_details
テーブル acc_chart_of_accounts は、すべてのユーザーによって、名目上の口座のスターター リストとして使用されます。テーブル chart_of_sub_accounts には、ユーザーが追加する新しい名目上の口座が含まれます。テーブル acc_posting_details には、口座取引エントリが含まれます。目標は、acc_chart_of_accounts テーブルをベースとして使用し、ユーザーが作成したその他の公称コードを各公称コードの合計で追加し、すべて company_id によってフィルター処理された公称口座リストを表示することです。これを行うために、私は次のことを試しました:
acc_chart_of_accounts テーブルと acc_chart_of_sub_accounts テーブルを取得し、次のクエリを以下の 2 つのテーブルに適用しました。
acc_chart_of_accounts
Nominal_acc_no coa_name
10 Freehold property cost
20 Freehold property depreciation
110 Leasehold property cost
120 Leasehold property depreciation
210 Plant and machinery cost
acc_chart_of_sub_accounts
Nominal_acc_no coa_name
1200 Bank current account
これは、ユーザーが設定したメイン テーブルacc_chart_of_accountsとサブ テーブルacc_chart_of_sub_accountsから名目上のアカウントを一覧表示するクエリです...
SELECT nominal_acc_no,coa_name FROM
(
SELECT nominal_acc_no ,coa_name FROM acc_chart_of_accounts
UNION
SELECT nominal_acc_no,coa_name FROM acc_chart_of_sub_accounts
) A;
これが結果です。読みやすくするために結果の一部を削除しました。クエリが右側のテーブル acc_chart_of_sub_accounts の公称コード エントリを取得し、左側のテーブルのリストに挿入することがわかります。 acc_chart_of_accounts はリストの最後にありますが、ORDER BY でソートすると思います。
したがって、ユーザーが自分のアカウントに新しい名目上のアカウントを追加すると、以下のようにメイン チャートに表示されます。
Nominal_acc_no coa_name
10 Freehold property cost
20 Freehold property depreciation
110 Leasehold property cost
120 Leasehold property depreciation
210 Plant and machinery cost
**1200 Bank current account**
ここで行う必要があるのは、次のテーブル acc_posting_details をミックスに追加することです。このテーブルを他の 2 つにリンクして、返された結果に合計残高が追加されるようにする必要があります。
post_detail_id Nominal_acc_no debit credit company_id
1 2109 0.00 27.00 0
2 2200 4.00 0.00 0
3 7000 23.00 0.00 0
4 2109 0.00 27.00 0
5 2200 4.00 0.00 0
6 6100 23.00 0.00 0
ユーザーが勘定科目表を見ると、マスター テーブルのすべての公称コードに加えて、設定した可能性のあるその他のコードと、各公称コードに存在する可能性のある残高が表示されます。このクエリは、 $_SESSION 値から取得される company_id。
以下は、次のコードを使用して作成できたクエリの結果です。
SELECT
`acc_chart_of_accounts`.`nominal_acc_no`
, `acc_chart_of_accounts`.`coa_name`
, SUM(`acc_posting_details`.`debit`) AS `dabit`
, SUM(`acc_posting_details`.`credit`) AS `credit`
, `acc_posting_details`.`company_id`
FROM
`acc_chart_of_accounts`
LEFT JOIN `acc_posting_details`
ON (`acc_chart_of_accounts`.`nominal_acc_no` = `acc_posting_details`.`nominal_acc_no`)
GROUP BY `acc_chart_of_accounts`.`nominal_acc_no`;
Nominal_acc_no coa_name デビット クレジット
10 Freehold property cost (NULL) (NULL)
20 Freehold property depreciation (NULL) (NULL)
110 Leasehold property cost (NULL) (NULL)
120 Leasehold property depreciation (NULL) (NULL)
210 Plant and machinery cost (NULL) (NULL)
310 Fixture and fittings cost (NULL) (NULL)
320 Fixture and fittings depreciation (NULL) (NULL)
410 Motor vehicles cost (NULL) (NULL)
420 Motor vehicles depreciation (NULL) (NULL)
700 Investments (NULL) (NULL)
900 Goodwill (NULL) (NULL)
1000 Stock (NULL) (NULL)
1100 Trade debtors (NULL) (NULL)
1103 Debtors and prepayments (NULL) (NULL)
2100 Purchase ledger control (NULL) (NULL)
2109 Creditors 0.00 54.00
2200 VAT control acc 8.00 0.00
2300 PAYE NI Liability (NULL) (NULL)
2600 Bank loan (NULL) (NULL)
2700 Hire purchase (NULL) (NULL)
2800 Lease purchase (NULL) (NULL)
2900 Other loans (NULL) (NULL)
3000 Capital Acc BBF (NULL) (NULL)
3100 Capital introduced (NULL) (NULL)
3200 Profit and loss account (NULL) (NULL)
3300 Personal drawings (NULL) (NULL)
4000 Sales (NULL) (NULL)
4009 Discounts allowed (NULL) (NULL)
4100 Eport sales (NULL) (NULL)
4200 Royalties received (NULL) (NULL)
4210 Commisions received (NULL) (NULL)
4220 Insurance payout received (NULL) (NULL)
4230 Rental income (NULL) (NULL)
4240 Bank interest received (NULL) (NULL)
5000 Purchases (NULL) (NULL)
5900 Opening stock (NULL) (NULL)
5950 Closing stock (NULL) (NULL)
6000 Direct labour (NULL) (NULL)
6100 Goods out cost 23.00 0.00
6200 Goods in cost (NULL) (NULL)
これは 2 つのアカウント テーブルを読み取るだけで、acc_chart_of_sub_accounts の余分な名目上のアカウントを読み取るわけではありませんが、最終的に何をしたいのかという要点が得られます。手助け。ありがとう
デビッド