подскажите плз, есть база (new_users) типа:
dt, user
12.12.2009 user1
13.12.2009 user1
16.12.2009 user2
18.12.2009 user2
select
user,
sum(if(extract(year_month from dt) = extract(year_month from now()), 1, 0)) as percurmonth,
sum(if(to_days(dt) = to_days(now()), 1, 0)) as percurday
from new_users
group by user having percurmonth > 0
order by user asc;
запрос считает колво записей с каждым юзером за текущий день и за текущий месяц.
как бы прикрутить к нему еще возможность показа суммы за текущий день по этим юзерам из второй базы (payments) типа:
dt, user, payment
10.12.2009 user1 150.00
10.12.2009 user1 130.00
10.12.2009 user2 200.00
10.12.2009 user2 220.00
допустим сегодня 10.12.2009
первый запрос выведет:
user1 2 0
user2 2 0
новый вывел-бы:
user1 2 0 280.00
user2 2 0 420.00
чую как-то JOIN'ом можно, да не могу сообразить как, не силен я в SQL (MySQL)
вот сделал с помощью subqueries, мож кому полезно будет:
select
user,
sum(if(extract(year_month from dt) = extract(year_month from now()), 1, 0)) as percurmonth,
sum(if(to_days(dt) = to_days(now()), 1, 0)) as percurday,
(select sum(if(to_days(dt) = to_days(now()), payment, 0)) from payments where new_users.user=payments.user) as curdaymoney
from new_users group by user having percurmonth > 0 order by user asc;