Možda je bolje ovo da se ne reši SQL upitom nego na aplikacionom nivou. Međutim, ako je neophodno da se reši upitom, da li bi ti radila posao dodatna tabela koja bi bila napunjena samo datumima, recimo tabela test_calendar sa samo jednim datumskim poljem test_date, a u toj tabeli svi datumi u opsegu koji je potreban (kako u prošlosti, tako i u budućnosti)?
Code (sql):
SELECT contracts.id, test_calendar.test_date
FROM contracts, test_calendar
WHERE test_calendar.test_date BETWEEN contracts.start_date AND contracts.end_date
AND NOT EXISTS (SELECT 1 FROM AccountHanlders, Accounts
WHERE AccountHanlders.account_id = Accounts.id
AND Accounts.id = Contracts.account_id
AND test_calendar.test_date BETWEEN AccountHanlders.start_date AND AccountHanlders.end_date)
Napomena: upit nisam testirao, jer mi nisi dao cretate table komande za tvoje tabele, tako da ne garantujem da je upit bez grešaka, ali pretpostavljam da razumeš ideju.