0

次の3つのテーブルがあります

  1. acc_chart_of_accounts
  2. acc_chart_of_sub_accounts
  3. 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 の余分な名目上のアカウントを読み取るわけではありませんが、最終的に何をしたいのかという要点が得られます。手助け。ありがとう

デビッド

4

1 に答える 1