试图从需要几个连接和一些数学表的计算中获得一个简单的COUNT。我不明白。我一直在遇到“无效使用组功能”。在一个类似的查询中,我得到所有的数据,只是无法计数。计算并加入MYSQL中的计算
我有4张桌子。
CUSTOMERS
id name thegroup periodicity
1 Foo 3 4
GROUPS
id group_name
3 New York
每位顾客都有一系列的取件日期。
COLLECTIONS
id coll_date customer_id
3 2011-09-07 1
3 2011-07-21 1
而周期表是计划的皮卡之间的周数。
PERIODS
id duration
4 4
因此,持续时间4意味着每4周或28天取件。
我可以计算下一个取件日期何时接近:如果他们有28天的周期性,那么从上次取件到现在已经有21天时间了,就可以标记它了。在这种情况下,将75%通过其周期性21/28,或:
(ABS(DATEDIFF(MAX(collections.coll_date), NOW()))/(periods.duration *7))
如果结果大于0.75时,则它们是由于对回暖。 我可以通过客户循环,并计算出没有问题。
我的目标是: 我需要知道每个组中有多少客户需要提货,请注意:COUNT(customers)WHERE(此计算)> .75 GROUP BY group.id。
我有这个到目前为止,但不能正确。
SELECT COUNT(*), groups.id
FROM customers
INNER JOIN groups ON customers.thegroup = groups.id
INNER JOIN periods ON customers.periodicity = periods.id
LEFT JOIN collections ON customers.id = collections.rest_id
WHERE status = 1 AND (ABS(DATEDIFF(MAX(collections.coll_date), NOW()))/(periods.duration*7)) > .75
GROUP BY groups.id
哇......这是完美的。我不能够感谢你!太快了。真棒。 – user1029213