特定の時間枠内に完了したマイルストーンの割合をほぼチェックすることで構成されるプロジェクト進捗レポートを生成したいと思います。(例:A社は今日までに10のマイルストーンを達成しましたが、完了としてマークされたのは8つだけであるため、計画よりも20%遅く進行しています。)
この部分は簡単でうまく機能していますが、それを生成する前に、プロジェクト計画が承認されているかどうかを判断します。承認されたプロジェクト計画は、マイルストーン1および2=100の計画です。
以下に、私が使用しなければならないテーブル構造を示します。
ID Company Project Milestone Date Completion
170825240 Company A Project 1 Milestone 1 29.10.12 100
170825311 Company A Project 1 Milestone 2 29.10.12 0
170825242 Company A Project 1 Milestone 3 05.11.12 100
170825173 Company A Project 1 Milestone 4 17.12.12 0
170825104 Company B Project 1 Milestone 1 29.10.12 100
170825035 Company B Project 1 Milestone 2 29.10.12 100
170824966 Company B Project 1 Milestone 3 05.11.12 100
170824897 Company B Project 1 Milestone 4 17.12.12 0
170824828 Company C Project 1 Milestone 1 29.10.12 100
170824759 Company C Project 1 Milestone 2 29.10.12 100
170824690 Company C Project 1 Milestone 3 05.11.12 0
170824621 Company C Project 1 Milestone 4 17.12.12 0
このスナップショットでは、プロジェクト1がB社とC社に対して承認されています。
私が直面している問題は、承認された計画のみをフィルタリングする単一のクエリの進行状況をどのように組み合わせるかです。会社とプロジェクトの1600の組み合わせについて話しているので、例外を手動で作成するのは嫌です。
誰かがそれを行う方法を知っていますか?
ありがとう!!!!
更新しました
SELECT S1.[Company], COUNT(S1.[Milestone]) AS ShouldBeMilestones
FROM Sheet1 AS S1
INNER JOIN Sheet1 S2
ON S2.[Company] = S1.[Company]
AND S2.[Project] = S1.[Project]
AND S2.[Milestone] = 'Milestone 1'
AND S2.[%compl#] = 100
INNER JOIN Sheet1 S3
ON S3.[Company] = S1.[Company]
AND S3.[Project] = S1.[Project]
AND S3.[Milestone] = 'Milestone 2'
AND S3.[%compl#] = 100
WHERE ((S1.[Task class] <> 'A') AND (S1.[Task class] <> 'B') AND (S1.[Task class] <> ''))
AND S1.[Milestone] NOT LIKE '0.*' AND S1.[Milestone] NOT LIKE '1.*'
AND S1.[Start] <= Now()
GROUP BY S1.[Company];