我只想询问是否存在从下表中检索数据的查询,如下所示: -
每周我都要显示客户支付的总金额。所以我想每周为每位顾客检查一次钱。
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
谢谢...
答案 0 :(得分:2)
您可以使用GROUP BY
和WEEK
功能
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
文件或其他内容运行脚本。
希望能给你这个想法。祝你好运!