не получается вытащить точные данные по клинтам На тариффных планах. необходимо сделать отчет количество клиентов на каждом тарифе на первое число каждого месяца за 2008 год.
например: количество клиентов на 1 января 2008 года
неполучается связать данные по удаленным пользователям, удаленным тарифным и сервисным связкам.
пробовал угадать где и какие данные хранятся получилось несколько вариантов запросов
##### выдает названия тарифов и количество абонентов (с условием даты подключения абонента)###
select count(users.basic_account), tariffs.name
from users, service_links, tariffs_services_link, tariffs
where users.id=service_links.user_id and service_links.service_id=tariffs_services_link.service_id
and tariffs_services_link.tariff_id=tariffs.id
and users.connect_date<unix_timestamp('2008-01-01')
and tariffs_services_link.is_deleted=0
and service_links.is_deleted=0
and users.is_deleted =0
group by tariffs.name;
#####
есть абоненты удаленные сейчас - но 2008-01-01 они были на каком -то тарифе, решил смотреть в историю (tariffs_history и user_log)
###
select count(users.basic_account), tariffs.name
from users, service_links, tariffs_services_link, tariffs
where users.id=service_links.user_id and service_links.service_id=tariffs_services_link.service_id
and tariffs_services_link.tariff_id=tariffs.id
and users.connect_date<unix_timestamp('2008-01-01')
and service_links.is_deleted=0
and users.id not in ( select distinct user_id from user_log where what='user_delete'
and date < unix_timestamp('2008-01-01'))
group by tariffs.name;
####
select count(users.basic_account), tariffs.name
from users, service_links, tariffs_services_link, tariffs
where users.id=service_links.user_id and service_links.service_id=tariffs_services_link.service_id
and tariffs_services_link.tariff_id=tariffs.id
and users.connect_date<unix_timestamp('2008-01-01')
and basic_account not in
(
select account_id
from tariffs_history
where unlink_date >unix_timestamp("2008-01-01")
)
group by tariffs.name;
#####
других вариантов я не нашел пока, все запросы выдают неправильные данные гдето чегото нехватает... может есть другой вариант или както все это объединить? помогите пожалуста!!