Php 根据注册日期每月更新数据库汇总
需要帮助为数据库编写函数。我想根据会员订单的注册日期,每月跟踪会员订单的总成本。因此,如果有人在本月中旬注册,该功能应该在他们的注册日期加上30天,并将在该数据库中的时间和地点的销售额总和。然后显示在用户页面上。目前使用的是mysql函数,而不是PDO或mysqli 比如:Php 根据注册日期每月更新数据库汇总,php,sql,database,Php,Sql,Database,需要帮助为数据库编写函数。我想根据会员订单的注册日期,每月跟踪会员订单的总成本。因此,如果有人在本月中旬注册,该功能应该在他们的注册日期加上30天,并将在该数据库中的时间和地点的销售额总和。然后显示在用户页面上。目前使用的是mysql函数,而不是PDO或mysqli 比如: <?php $query = ("SELECT SUM(cost) FROM memberOrders WHERE memberNumber='$memberNumber' GR
<?php
$query = ("SELECT SUM(cost) FROM memberOrders WHERE
memberNumber='$memberNumber' GROUP BY signupdate+30days");
?>
但不可能只有30天……应该是+30、+60、+90……这是我一直坚持的部分。谢谢 用PHP计算开始/结束日期,并使用子查询:
SELECT SUM(cost) FROM
(Select cost, membernumber from memberOrders WHERE
memberNumber='$memberNumber' and date >= '$startdate' and date <= '$enddate'
GROUP BY substr(date, 7))
GRoup by membernumber
假设您在MemberOrders中同时具有注册日期和订单日期,以下内容将返回订单的所有月份:
SELECT datediff(orderdate, signupdate, interval month) as MonthsAfter,
SUM(cost) as MonthCost
FROM memberOrders
WHERE memberNumber='$memberNumber'
GROUP BY datediff(orderdate, signupdate, interval month)
如果您的所有月份都有30天,您可以:
SELECT floor(datediff(orderdate, signupdate, interval day)/30) as Months,
SUM(cost) as MonthCost
FROM memberOrders
WHERE memberNumber='$memberNumber'
GROUP BY floor(datediff(orderdate, signupdate, interval day)/30)
注意:这两项都将0分配给注册后的第一个月。如果您想从1开始,请添加+1。请出示您的表格,这是您可以提供的最少信息;你能解释一下功能吗?据我所知,您希望我指定开始和结束日期。开始日期是某人注册的日期…结束日期是…无限。这就是我遇到的问题,因为没有结束日期…我只希望数据库添加一个月,并从中检查如果您希望无限期地运行查询,上述查询将无法工作。我的建议是重新考虑数据库模型以满足您的需要。