0

需要帮助为数据库编写函数。我想根据会员的注册日期跟踪每个月会员订单的总成本。因此,如果有人在月中注册,该函数应该在他们的注册日期上增加 30 天,并将该期间的销售额汇总并放入数据库中。然后显示在用户页面上。使用 mysql 函数(暂时不是 PDO 或 mysqli)。

就像是:

<?php
     $query = ("SELECT SUM(cost) FROM memberOrders WHERE 
              memberNumber='$memberNumber' GROUP BY signupdate+30days");
?>

但它不能只是 30 天……应该是 +30、+60、+90……这就是我坚持的部分。谢谢!

4

2 回答 2

0

计算 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
于 2013-01-06T18:35:26.147 回答
0

假设您在 中同时拥有注册日期和订单日期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 开始,请添加。

于 2013-01-06T18:49:29.407 回答