Ero uscito.
Quindi hai detto che hai provato anche con group by???

Select id_spettacolo,count(*) from TB_DATE LEFT JOIN TB_Spettacoli ON TB_DATE.id_spettacolo = TB_Spettacoli.ID Group By id_spettacolo

Questo tidovrebbe tornare per ogni spettacolo il numero di date prendi questo e fai una Join con gli spettacoli.