我有一个名为结算和付款的数据集,我已将其附加在一起,然后按ID排序,这样人们就可以查看每个ID收取的帐单以及每个ID所做的付款。
以下是它的快照: Dataset snapshot
contractaccount printdate paymentdate billingperiod duedate payable payment
12345 01jan2015 201501 15jan2015 100
12345 13jan2015 50
12345 13jan2015 50
12345 29jan2015 201502 13feb2015 150
12345 03feb2015 150
12345 05mar2015 201503 20mar2015 100
12345 21mar2015 80
12345 22mar2015 20
23456 15jan2015 201501 31jan2015 200
23456 20jan2015 200
23456 12feb2015 201502 28feb2015 220
23456 13feb2015 100
23456 15feb2015 100
23456 20feb2015 20
23456 10mar2015 201503 20mar2015 200
23456 18mar2015 100
23456 20mar2015 100
如果在打印日期和延期付款之间进行付款,我打算对付款进行汇总,并且计费周期对应于打印日期的附加条件,例如,对于ID 12345,01jan2015和01之间的付款总和15jan2015,前提是billingperiod“201501”对应printdate 01jan2015。
我尝试过以下代码:
bysort contractaccount: gen paymentsum=sum(payment) if paymentdate<=duedate & paymentdate>=printdate
但我仍然不知道如何添加上述附加条件。它也没有给我我想要的东西,因为代码为每个id生成了累积的支付金额。理想情况下,我希望生成一个输出,该输出将显示针对上述所有日期条件的每个ID所做的付款总额(对于每个结算周期,每个ID所支付的金额是多少)。
我有预感我需要写一个循环,这是另一个挑战,因为我仍然是Stata的新用户。