# DeliveryActions и #DeliveryAction должны иметь несколько строк в соединении. Если вам нужно выяснить, существует ли он только один раз, вам нужно сгруппировать данные в этих таблицах.
- заменить ЭТОТ
LEFT JOIN #DeliveryActions das
ON das.ProfileFanId = pf.Id
LEFT JOIN #DeliveryAction da
ON da.Id = das.DeliveryActionId
- С ЭТИМ
LEFT JOIN (SELECT ProfileFanId
FROM #DeliveryActions ia
LEFT JOIN #DeliveryAction ib
ON ia.DeliveryActionId = ib.Id
GROUP BY ProfileFanId) das
ON das.ProfileFanId = pf.Id
Обратите внимание, что поскольку вы везде используете LEFT JOIN, в других таблицах может быть 0 строк? Не уверен, что это то, что вы хотели. Если вам нужен счетчик, где он существует во всех таблицах, просто измените LEFT JOIN на INNER JOIN (или JOIN, если я ленив, как я)