使用mysql查询计算截至提及日期的总金额

使用mysql查询计算截至提及日期的总金额,mysql,sql,datetime,date,min,Mysql,Sql,Datetime,Date,Min,该会员将于每月10日付款……我能否获得该会员截至2011年5月15日已支付的总金额,以及是否可以使用mysql查询 这是sql查询 你们建议的 membership table membership start date 2011-01-10 membership end date 2012-09-08 mem

该会员将于每月10日付款……我能否获得该会员截至2011年5月15日已支付的总金额,以及是否可以使用mysql查询

这是sql查询 你们建议的

                   membership table
                         membership start date 2011-01-10
                         membership end date 2012-09-08
                         membership monthly amount £120.00
                         member_Id

                    member table
                       member_id
但它在会员资格结束日期“2011-7-06”和该日期“2011-7-06”之间给出了错误


你能解释一下为什么会出现错误吗?你的问题不是很清楚,我认为你没有正确地解释模式。如果您想获得每个人已支付的所有费用的总和:

                    SELECT TIMESTAMPDIFF(MONTH, membertomships.memberToMship_StartDate, MIN(membertomships.memberToMship_EndDate,'2011-7-06'))* memberToMship_ChargePerPeriod FROM membertomships WHERE membertomships.member_Id = '1';
如果您希望通过日期或会员id限制where条款,请随时添加where条款:


你的问题不是很清楚,我认为你没有正确地解释模式。如果您想获得每个人已支付的所有费用的总和:

                    SELECT TIMESTAMPDIFF(MONTH, membertomships.memberToMship_StartDate, MIN(membertomships.memberToMship_EndDate,'2011-7-06'))* memberToMship_ChargePerPeriod FROM membertomships WHERE membertomships.member_Id = '1';
如果您希望通过日期或会员id限制where条款,请随时添加where条款:


我猜您只有订阅数据,而不是所有的付款表,对吗? 那么你需要这样的陈述

select sum(amount) from membership group by member_id
当然,您应该用列名和参数替换常量


当然,这假设付款日10取决于订阅开始日期,并且客户已按时付款。:)

我猜您只有订阅数据,而不是所有付款表,对吗? 那么你需要这样的陈述

select sum(amount) from membership group by member_id
当然,您应该用列名和参数替换常量

当然,这假设付款日10取决于订阅开始日期,并且客户已按时付款。:)

也包括当前日期

SELECT TIMESTAMPDIFF(MONTH, start_date, MIN(end_date,'2011-05-15')) * amount from membership where membershipId=@memberdshipId
这在ms sqlserver中运行良好,请更改为mysql syntex

 SELECT TIMESTAMPDIFF(MONTH, start_date, MIN(end_date,'2011-05-15')) * amount ,TIMESTAMPDIFF(MONTH, start_date, MIN(end_date,CURDATE())) * amount from membership where membershipId=@memberdshipId

也包括当前日期

SELECT TIMESTAMPDIFF(MONTH, start_date, MIN(end_date,'2011-05-15')) * amount from membership where membershipId=@memberdshipId
这在ms sqlserver中运行良好,请更改为mysql syntex

 SELECT TIMESTAMPDIFF(MONTH, start_date, MIN(end_date,'2011-05-15')) * amount ,TIMESTAMPDIFF(MONTH, start_date, MIN(end_date,CURDATE())) * amount from membership where membershipId=@memberdshipId


如果这个问题不清楚,请告诉我..听说过一个条款或函数吗?你的意思是他们迄今为止支付了多少钱?我想知道他到今天为止支付了多少钱,以及他到上面提到的日期为止支付了多少钱…如果这个问题不清楚,请告诉我..听说过一个条款或函数吗?你的意思是他们有多少钱到目前为止有没有支付过?我想知道他到今天为止要支付多少钱,以及他到上面提到的日期为止已经支付了多少钱……他想计算订阅开始日期和他给出的日期之间支付的金额。@rahularyansharma那么他们需要知道订阅开始日期和结束日期之间有多少个月,乘以每月金额,假设自开始日期至今未发生变化。你对问题的总结与他们的评论不同。你认识他们吗?@Raoul我个人不认识他,但你看到的表格结构格式不正确,你也可以猜出他想要什么。现在你在最后的评论中回答的是他真正需要的。他对每个用户只有一个条目,包括开始日期、结束日期、金额、成员身份ID,他想计算用户到任何特定日期的支付金额。@rahul是否可以这样计算金额(今天的金额-到给定日期的支付金额(考虑到每个月的支付日期))*月数…他想计算订阅开始日期和他给出的日期之间支付的金额。@rahularyansharma那么他们需要知道订阅开始日期和结束日期之间有多少个月,乘以每月金额,假设从开始日期到现在没有变化。你对问题的总结与他们的评论不同。你认识他们吗?@Raoul我个人不认识他,但你看到的表格结构格式不正确,你也可以猜出他想要什么。现在你在最后的评论中回答的是他真正需要的。他对每个用户只有一个条目,包括开始日期、结束日期、金额、成员身份ID,他想计算用户到任何特定日期的支付金额。@rahul是否可以这样计算金额(今天的金额-到给定日期的支付金额(考虑到每个月的支付日期))*月数…这将返回会员截至2011年5月15日支付的金额。。因此,我们如何计算他到今天为止必须支付的金额…只需将“2011-05-15”改为今天日期亲爱的。它将给出他今天必须支付的金额。这与我在回答中告诉的完全相同,但参数不是值。@Rahul但sql查询在日期之间的这个位置给出错误memberToMship_EndDate和此日期'2011-7-06'这是错误代码:1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在“2011-7-06”附近使用的正确语法)*memberToMship\u ChargePerPerPerPerPeriod FROM membertomships,其中第1行的membertom'将返回该成员截至2011-05-15日为止已支付的金额。。因此,我们如何计算他到今天为止必须支付的金额…只需将“2011-05-15”改为今天日期亲爱的。它将给出他今天必须支付的金额。这与我在回答中告诉的完全相同,但参数不是值。@Rahul但sql查询在日期之间的这个位置给出错误memberToMship_EndDate和此日期'2011-7-06'这是错误代码:1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“2011-7-06”附近使用的正确语法)*memberToMship\u ChargePerPerPerPerPeriod FROM membertomships WHERE membertom'在第1行