每周检索数据

时间:2014-07-05 08:35:23

标签: php html mysql sql database

我只想询问是否存在从下表中检索数据的查询,如下所示: -

每周我都要显示客户支付的总金额。所以我想每周为每位顾客检查一次钱。

Customer  |   Date      |Money|
----------------------------------------------------------------------
Jhon        2014-07-01    22
Ammy        2014-07-02    25
Jhon        2014-07-03    21
Josh        2014-07-04    28
Josh        2014-07-05    30
Ammy        2014-07-06    211
Jhon        2014-07-07    217

谢谢...

3 个答案:

答案 0 :(得分:2)

您可以使用GROUP BYWEEK功能

执行此操作
SELECT customer, WEEK(date) AS week, SUM(money) AS total
FROM table
GROUP BY customer, WEEK(date);

这是sqlfiddle:http://sqlfiddle.com/#!2/f0754f/1


如果您只想要当前周,则可以添加WHERE子句:

SELECT customer, WEEK(date) AS week, SUM(money) AS total
FROM table
WHERE WEEK(date) = WEEK(NOW())
GROUP BY customer, WEEK(date);

答案 1 :(得分:0)

您的问题不明确......我想您想获得一周的数据

SELECT sum(Money) as TotalPaid FROM yourtable
WHERE Date between date_sub(now(),INTERVAL 1 WEEK) and now();

如果您需要两周时间,请使用类似

的内容
 SELECT 'last week' AS week, COUNT(*) AS rows 
FROM table_name
WHERE date_logged >= CURDATE() - INTERVAL  6 DAY 
  AND date_logged  < CURDATE() + INTERVAL  1 DAY
UNION ALL
SELECT 'previous week' AS week, COUNT(*) AS rows 
FROM table_name 
WHERE date_logged >= CURDATE() - INTERVAL 13 DAY
  AND date_logged  < CURDATE() - INTERVAL  6 DAY ;

答案 2 :(得分:0)

您的SQL查询应该是这样的:

<强>更新

SELECT Customer, sum(Money) as TotalMoney from MoneyTable 
WHERE `Date` BETWEEN DATE_ADD(NOW(), interval -1 WEEK) and NOW() group by Customer

构建一个PHP脚本并每周运行该查询并执行您喜欢的数据处理。

现在的问题是如何每周运行它?

如果您使用的是Linux,则可以使用cron服务。设置如下:

5 8 * * 6 php /my/script/location/script.php

如果您使用的是Windows,请尝试使用调度程序并通过bat文件或其他内容运行脚本。

希望能给你这个想法。祝你好运!