I think there should be A.created_date instead of A.created_at select `plans`.`name`, `A`.`subscription_id`, `A`.`amount`, `A`.`created_date`, `A`.`end_date`, `A`.`subscription_status`, `users`.`email`, `A`.`plan_id`, `A`.`user_id`, `usage`.`created_at` as `usagedate`, COUNT(usage.id) as used_count from `subscriptions` A left join `users` on `users`.`id` = `A`.`user_id` left join `plans` on `A`.`plan_id` = `plans`.`Id` left join `usage` on `A`.`user_id` = `usage`.`user_id` where `usage`.`created_at` between A.created_date and A.end_date … Read more