2012-05-12 20 views
0

私のCrystalレポートには、totaldues(currentamount+anotheramount-receivedamount)月間/年次とともに日付、現在の金額、現在の金額、受領日数を計算したいと思います。私は次の列を含む3つのテーブルがあります。毎月または毎月合計の計算を計算するためのSQLプロシージャの作成方法

TABLE_1

accountno shipername shiperaddress Executivename 
001   john   123, London  soma 
002   Robi   127, China  soma 
003   kal   689,India  paul 

Table_2 

Executivename shipername shiperaddress accountno currentamount anotheramount 
    soma  john  123,london  001  1050   1000 
    soma  robi  127,china  002  1100   600 
    soma  robi  127,china  002   500   300 
    paul  kal   689,india  003   600   400 
Shipdate 
01/15/2012 
01/25/2012 
02/27/2012 
02/14/2012 

Table_3は

accountno [Date]  ReceivedAmount MoneyReceiptNo 
    001  1/1/2012  500    G 256412 
    002  1/2/2012  200    D 246521 
    002  2/5/2012  300    H 254864 
    003  3/3/2012  200    D 569823 

は、私がやったことを、私はこのストアドプロシージャが作成されたことに言及しなければならない。ここ

"bendataclear" の助けによって、以下の操作を行います総額:

CREATE PROCEDURE [dbo].[rptexetotaldues] @Executivename varchar(20) 
AS BEGIN 
SELECT SUB.ACCOUNTNO, SUM(SUB.DUE) AS TOTALDUE FROM 
    (SELECT ACCOUNTNO 
     , CURRENTAMOUNT AS DUE 
    FROM TABLE_2 
    INNER JOIN TABLE_1 -- WILL ONLY WORK IF ACCOUNTNO IS UNIQUE WITHIN TABLE_1 
    ON TABLE_1.ACCOUNTNO = TABLE2.ACCOUNTNO 
    WHERE TABLE_1.EXECUTIVENAME = @Executivename 
    UNION ALL 
    SELECT ACCOUNTNO 
     , ANOTHERAMOUNT AS DUE 
    FROM TABLE_2 
    INNER JOIN TABLE_1 
    ON TABLE_1.ACCOUNTNO = TABLE2.ACCOUNTNO 
    WHERE TABLE_1.EXECUTIVENAME = @Executivename 
    UNION ALL 
    SELECT ACCOUNTNO 
     , -RECEIVEDAMOUNT AS DUE -- NOTE NEGATIVE SIGN 
    FROM TABLE 3 
    INNER JOIN TABLE_1 
    ON TABLE_1.ACCOUNTNO = TABLE3.ACCOUNTNO 
    WHERE TABLE_1.EXECUTIVENAME = @Executivename 
    ) SUB 
GROUP BY SUB.ACCOUNTNO 

誰でもこのストアドプロシージャを表示することによって親切に私を助けることができますか?

私は正確に..

エグゼクティブの名前のような結果を取得したい:ソーマ

アカウントはありません... FebruaryDues ... JanuaryDues..AnotherAmount..TotalDues

001 ... ...... 0 ........ 1050 ...... 1000 ... 1550

002 ......... 500 ......... 1100。 ...... 900 ........ 2000

実行名:paul

AccountNo ... FebruaryDues ... JanuaryDues ... AnotherAmount..TotalDues

003 ....... 600 ........ 0 ....... 400 ...... 800

Shipdate.iで合計(currentAmount)を計算したいと思っています。その可能性があるかどうかわからない誰でもそれは別の方法で行うことができると思う、そして高く評価された投稿を

+6

緊急の場合は、質問を読みやすくして、人々が実際に気にかけて読むことができるようにすることをお勧めします。書式設定ツールを使用して、質問が明確であることを確認してください。あなたが試したことを投稿してください。エラーが発生した場合は、それらのエラーを投稿してください。 –

+1

これも複製のようです。しかし、重複した質問の検索方法はわかりません。 –

+0

の可能な複製[毎月、毎月合計の計算のためのSQLプロシージャを作成する方法](http://stackoverflow.com/questions/10565446/how-to-create-sql-procedure-for-calculating-total-dues-monthly - 年)および[合計金額の計算のためのSQLプロシージャの作成方法](http://stackoverflow.com/questions/10558484/how-to-create-sql-procedure-for-calculating-total-dues) –

答えて

0

私はあなたがシステムの複雑さを増やす必要があると思う、割り当てテーブルを追加し、支払額それ以外の場合は、アカウントが支払いを受け取った場合、これが却下された月を特定することができず、クリアする/減らす月の計算を計算することができません。

+0

多くのあなたのポストに感謝します。とにかく、あなたは私にこの問題に関するいくつかの関連する例を与えることができます – Joy

関連する問題