Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 循环将特定时间段内的值与附加值相加_Loops_Date_Stata - Fatal编程技术网

Loops 循环将特定时间段内的值与附加值相加

Loops 循环将特定时间段内的值与附加值相加,loops,date,stata,Loops,Date,Stata,我有一个名为billing and payments的数据集,我将其附加在一起,然后按id排序,这样就可以查看每个id的账单以及每个id的付款 以下是它的快照: 如果付款是在打印日期和到期日期之间进行的,我打算对付款进行合计,附加条件是计费周期对应于打印日期,例如,在2015年1月1日和2015年1月15日之间,对id 12345的付款进行合计,前提是计费周期“201501”对应于打印日期2015年1月1日 我尝试了以下代码: bysort contractaccount: gen payme

我有一个名为billing and payments的数据集,我将其附加在一起,然后按id排序,这样就可以查看每个id的账单以及每个id的付款

以下是它的快照:

如果付款是在打印日期和到期日期之间进行的,我打算对付款进行合计,附加条件是计费周期对应于打印日期,例如,在2015年1月1日和2015年1月15日之间,对id 12345的付款进行合计,前提是计费周期“201501”对应于打印日期2015年1月1日

我尝试了以下代码:

bysort contractaccount: gen paymentsum=sum(payment) if paymentdate<=duedate  & paymentdate>=printdate
bysort contractaccount:gen paymentsum=sum(如果paymentdate=printdate)
但我仍然不知道如何添加上述附加条件。它也没有给我我想要的,因为代码生成了每个id的累计付款总额。理想情况下,我希望生成一个输出,显示每个id在上述所有日期条件下的付款总额(对于每个计费周期,每个id的付款总额是多少)


我有一个预感,我需要写一个循环,这是另一个挑战,因为我仍然是Stata的新用户

可以复制和粘贴的示例数据将有助于您的案例。大部分的建议都适用于这里。嗨,尼克,谢谢你的建议!我已经在这里更新了我的查询,可以复制和粘贴的示例数据将有助于您的案例。大部分的建议都适用于这里。嗨,尼克,谢谢你的建议!我已经在这里更新了我的查询
bysort contractaccount: gen paymentsum=sum(payment) if paymentdate<=duedate  & paymentdate>=printdate