だから私は部門とサブ部門を持つテーブルを持っています。構造は次のとおりです。
COMPANYID | DIVISIONID | DIVISION | PARENTID
1 | 1 | North | NULL
1 | 2 | South | NULL
1 | 3 | East | NULL
1 | 4 | West | NULL
1 | 5 | Sales | 1
1 | 6 | Service | 1
1 | 7 | Sales | 2
1 | 8 | Service | 2
1 | 9 | Sales | 3
1 | 10 | Service | 3
1 | 11 | Sales | 4
1 | 12 | Service | 4
表の背後にある考え方は、データがこれらの部門/下位部門のすべてが同じ会社のものであることを示すということです。null の PARENTID を持つものはすべて「ディビジョン」であり、PARENTID を持つものはすべて「サブディビジョン」です。最大で 2 つのティアがあります (ディビジョン --> サブディビジョン)。このテーブルは、次の階層を作成します。
Company 1
North
Sales
Service
South
Sales
Service
East
Sales
Service
West
Sales
Service
すべての部門と下位部門を含む表を含む、会社の詳細を示す SSRS レポートを作成しようとしています。次のクエリを使用して、すべての部門と下位部門のリストを取得しています。
SELECT division, parentid
FROM division
WHERE companyid=@companyid
@companyid は、レポートのパラメーターです。私の思考プロセスは、親グループと詳細グループを持つテーブルを作成したいということです。親グループは、NULL PARENTID を持つすべての行になり、詳細グループは、PARENTID が親行の部門 ID と等しいすべての行をリストします。 . グループでそれを設定する方法がわかりません。フィルター?個別のクエリ?SQLクエリでそれを行いますか?
どんな助けでも大歓迎です!ありがとう!