помогите с запросом плз
От: necr0n0mic0n  
Дата: 17.06.09 04:28
Оценка:
подскажите плз, есть база (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)
Re: помогите с запросом плз
От: necr0n0mic0n  
Дата: 17.06.09 06:32
Оценка:
вот сделал с помощью 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;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.