我想计算每月/每年的totaldues(currentamount+anotheramount-receivedamount)
以及我的水晶报告中的日期,当前数量,其他金额,收到金额。我有3个包含以下列的表。
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
要做到这一点,我在" flexataclear"
的帮助下做了以下事情在这里,我必须提到这个存储过程只为totaldues创建:
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
有人可以通过展示这个存储过程来帮助我吗?
我希望得到与...完全相同的结果。
主管姓名:soma
帐户号码......二月份费用...一月份费用...另一份额外费用...总计费用
001 ......... 0 ........ 1050 ...... 1000 .... 1550
002 ....... 500 ....... 1100 ....... 900 ........ 2000
主管姓名:保罗
... AccountNo ... FebruaryDues ... JanuaryDues AnotherAmount..TotalDues
003 ....... 600 ........ 0 ....... 400 ...... 800
在这里,我想提一下,我想和Shipdate总结一下(currentAmount)。我不知道它的可能与否。如果有人认为它可能会发布它。如果有人认为可以做到通过另一种方式,然后也发布高度赞赏
答案 0 :(得分:0)
要做每月帐户会费,我认为您需要增加系统的复杂性,添加分配表并允许用户将现金分配到不同的到期金额,否则如果帐户收到付款,您将无法知道到期这是反对的,无法计算它应该清除/减少哪个月的会费。