2016-12-12 9 views
0

これは私の最初の質問です。私はタイトルがそれをはっきりと言うかどうかわからない。 私は過去5日間このことに固執しています。私はどこでもインターネット上のソリューションを見つけることができません。私はWindows 8上でMicrosoft Access 2013を使用しています。私はSQLコーディングの非常に基本的な知識があります。異なるフィールドに基づいて同じフィールドを2回合計します。基準

「CustomerOperationTable」というテーブルがあります。
CustomerName | OperationDate |デビット|クレジット|
.-------------------- | --------------------- | ---- ---- | -------- |
カスタマーA ...... | 01/01/2016 ..... | 2000年| 0 ...... |
カスタマーA ...... | 08/01/2016 ..... | 1000 | 0 ...... |
カスタマーA ...... | 29/01/2016 ..... | 0 ...... | 2500 |
カスタマーA ...... | 02/02/2016 ..... | 2500 | 0 ...... |
カスタマーA ...... | 03/04/2016 ..... | 3000 | 0 ...... |
カスタマーA ...... | 04/04/2016 ..... | 0 ...... | 4000 |
カスタマーB ...... ... | 02/03/2016 ..... | 2000年| 0 ...... |
カスタマーB ...... ... | 03/03/2016 ..... | 0 ...... | 4000 |
カスタマーB ...... ... | | 04/03/2016 ..... | 3000 | 0 ...... |
カスタマーB ...... ... | | 05/04/2016 ..... | 0 ...... | 1000 |

The table in a picture made by Excel

それは、その特定の日付で各顧客のための動作を示しています。私はクエリからレポートを作成しようとしています。したがって、私はショーのCustomerName

  • によって

    1. グループテーブルへのクエリがDebit_OBとCredit_OB
    2. として借方の和とOperationDateが= 31/01/2016 <あるクレジットの合計を示し
    3. が必要「再び」借方の和とOperationDateそう結果は

      以下の表のようになる

  • 2016年1月2日の間、および2016年1月11日であるクレジットの和0

    カスタマー名| Debit_OB | Credit_OB | Debit_CB | Credit_CB |
    .--------------------- | -------------- | ---------- ----- | -------------- | --------------- |
    カスタマーA ........ | 3000 ....... | 2500 ......... | 5500 ....... | 4000 ......... |
    カスタマーB ........ | 0 .............. | 0 ................ | 5000 ....... | 5000 ......... |

    The required Query Result made by excel

    私は私がインターネットで見つかったソリューションの多くを試したが、どれも私のために働いていません。 本当にありがとうございます。 結果を達成するために必要な情報を提供することを嬉しく思います。

    ps:書式設定のために追加された余分な「.....」は無視してください。

    答えて

    0

    私のソリューションは厄介な傾向がありますが、ちょっと!私は要求された結果を得た。
    私のクエリは:

    SELECT YourTable.CustomerName, 
    Sum(IIf([OperationDate]<=(#1/31/2016#),[Debit],0)) AS Debit_OB, 
    Sum(IIf([OperationDate]<=(#1/31/2016#),[Credit],0)) AS Credit_OB, 
    Sum(IIf([OperationDate]>(#1/31/2016#) And [OperationDate]<(#11/1/2016#),[Debit],0)), 
    Sum(IIf([OperationDate]>(#1/31/2016#) And [OperationDate]<(#11/1/2016#),[Credit],0)) 
    FROM YourTable 
    GROUP BY YourTable.CustomerName; 
    

    は自動的に動作しますが、パフォーマンスは十何千ものレコードのための問題になりますが。

    +0

    これは完全に機能します。非常に非常に非常にありがとう。私は本当にあなたの助けに感謝します。私は長い間sooooooのためにこれに固執されている..本当に、あなたの助けを大変ありがとうございました^ _^ –

    +0

    @ kurrapicazoldik喜んで助けてください。答えを正しいとマークするだけです。 – Lybren

    +0

    あなたの友達、G. Freecsはあなたが幸せになるでしょう。 良い一日を。 – Lybren

    関連する問題