2 つのテーブルがあります。リード、テリトリー、リファラー。
リードには列があります:
ID、名前、TerritoryId
リファラーには次のものがあります。
ID、リード ID、名前
地域には次のものがあります。
IDと名前
リードは常にテリトリーに関連し、リードは必要に応じてリファラーに関連付けることができます。
見込み客と紹介者のレコードは定期的に挿入されます (紹介者の頻度は低くなります)。次のような GridView でレポートを出力したいと考えています。
領土 | リード数 | Ref1 リード数 | Ref2 リード数 | Ref3 リード数 リーズ 10 1 7 2 エクセター 43 9 21 8 等...
問題は、テリトリー別にグループ化し、テリトリーごとに見込み客をカウントしたいということです....これで問題ありません:-
select t.Name, COUNT(1) from Territory t inner join Lead l on l.TerritoryID = t.Id t.Name でグループ化
しかし今、リファラーごとにカウントを分解したいと思います。
PIVOT で部分的にそれを行うことができることは理解していますが、リファラーをコードで明示的に記述する必要があることは理解しています。リファラーの行数に基づいて追加の列を追加する何らかの動的ピボットを実行する方法はありますか?
SP 内で動的 SQL を使用する必要がありますか?