У меня есть две таблицы; Ведет, Территории и Реферреры.
Свинец имеет столбцы:
ID, Name, TerritoryId
Рефералы имеют:
ID, LeadId, Name
Территория имеет:
ID and Name
Лидерство всегда относится к территории, и лидирование может дополнительно относиться к Рефереру.
Регулярно вставляются записи потенциальных клиентов и рефереров (рефералы реже). Я хочу вывести отчет в GridView, который выглядит следующим образом:
Territory | Lead Count | Ref1 Lead Count | Ref2 Lead Count | Ref3 Lead Count
Leeds 10 1 7 2
Exeter 43 9 21 8
etc...
ОК, проблема в том, что я хочу сгруппировать по территориям и подсчитать количество потенциальных клиентов по территории .... это нормально: -
select t.Name, COUNT(1)
from Territory t inner join Lead l on l.TerritoryID = t.Id
group by t.Name
Но теперь я хочу разбить счетчик по рефереру.
Я понимаю, что могу сделать это частично с PIVOT, однако я понимаю, что должен явно указать источники в коде. Есть ли способ выполнить какой-нибудь динамический свод, который добавляет дополнительные столбцы в зависимости от количества строк в Referrer?
Должен ли я использовать динамический SQL внутри SP?