開始日と終了日は日時または日付としてフォーマットされていると思います。
開始日のレコードが過去 3 か月以内に収まるか、終了日のレコードに収まるかを判断しようとしているかどうかはわかりません。
また、Sum(Allocation %) を決定するには制限が必要です。合計したい一意のレコード。割り当て % を合計してから 100 より大きいものだけを選択するため、どれをプルしてから合計するかを決定する必要があります。
これは、With ステートメントを使用するか、必要な情報を段階的に取得するサブ「テーブル」(クエリ) を作成することで実現できます。サブクエリステートメントを提示します。
Sql-Server 2008 R2 用に作成
過去 3 か月以内のデータを最初に選択
Select ResourceAssignmentID, ResourceID, [Assigned To], [Allocation %]
From ResourceAssignment
Where [Start Date] >= dateadd(Month,-3,Now)
次に、このデータを使用して、割り当て % を合計します。(2つの外部キーの組み合わせに基づいて仮定しています)
Select Query1.ResourceID, Query1.[Assigned To], sum(Query1.[Allocation %]) as Sumofallocation
From
(Select ResourceAssignmentID, ResourceID, [Assigned To], [Allocation %]
From ResourceAssignment
Where [Start Date] >= dateadd(Month,-3,Now)) Query1
Group By Query1.ResourceID, Query1.[Assigned To], sum(Query1.[Allocation %])
group by の前に Where ステートメントを追加して、100 を超える要件を除外することもできますが、別の Select ステートメントを追加して、すべてをまとめることができます。
Select * From
(Select Query1.ResourceID, Query1.[Assigned To], sum(Query1.[Allocation %]) as Sumofallocation
From
(Select ResourceAssignmentID, ResourceID, [Assigned To], [Allocation %]
From ResourceAssignment
Where [Start Date] >= dateadd(Month,-3,Now)) Query1
Group By Query1.ResourceID, Query1.[Assigned To], sum(Query1.[Allocation %])
) Query2
Where Query2.Sumofallocation > 100
また、プロジェクト管理型のプログラムも手がけているようですね。Microsoft Project は動作しませんか? 希望する時間枠で誰が過剰に割り当てられているかを確認できます。複数のプロジェクトがある場合は、それらを 1 つの大きなプロジェクト ファイルにマージして、そのように表示することができます...
とにかく、これがお役に立てば幸いです。SQL は完璧ではないかもしれませんが、実行可能な方向を示しているはずです。