async fetchMrrSourcesWithRange(startDate, endDate) {
        const knex = this.knex;
        const startDateTime = moment.utc(startDate).startOf('day').format('YYYY-MM-DD HH:mm:ss');
        const endDateTime = moment.utc(endDate).endOf('day').format('YYYY-MM-DD HH:mm:ss');
        
        // Join subscription created events with paid subscription events to get MRR changes
        const rows = await knex('members_subscription_created_events as msce')
            .join('members_paid_subscription_events as mpse', function () {
                this.on('msce.member_id', '=', 'mpse.member_id')
                    .andOn('msce.subscription_id', '=', 'mpse.subscription_id');
            })
            .select(knex.raw(`DATE(msce.created_at) as date`))
            .select(knex.raw(`SUM(mpse.mrr_delta) as mrr`))
            .select(knex.raw(`msce.referrer_source as source`))
            .where('msce.created_at', '>=', startDateTime)
            .where('msce.created_at', '<=', endDateTime)
            .where('mpse.mrr_delta', '>', 0) // Only positive MRR changes (new subscriptions)
            .whereNotNull('msce.referrer_source') // Only entries with attribution
            .groupBy('date', 'msce.referrer_source')
            .orderBy('date');

        return rows;
    }
Fetch MRR sources with date range
@param {string} startDate 
@param {string} endDate 
@returns {Promise<MrrCountStatDate[]>}