MySQL - Split date range into days per month

@DaveMaxwell @r937 Thanks for all your help and guidance. Finally cracked it, I think…
For others who are interested he’s my final query

`              SELECT
                        bookingID
                      , bookingS
                      , COUNT(*) AS bkDiM
                FROM    booking b
          INNER JOIN    datehelper d 
                  ON     d.dt BETWEEN b.bookingS AND
                                                    CASE 
                                                        WHEN b.bookingE IS NULL
                                                        THEN 
                                                            CASE
                                                                WHEN b.transfer IS NULL
                                                                THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY)
                                                                ELSE DATE_ADD(b.transfer, INTERVAL 1 DAY)
                                                            END
                                                        ELSE DATE_ADD(b.bookingE, INTERVAL 1 DAY)
                                                    END
                WHERE   d.dt <= CURDATE()
             GROUP BY   EXTRACT(YEAR_MONTH FROM d.dt)`