2 つの異なる UID が両方のリソース名を検索する必要があるクエリを作成しようとしていますが、別々です。
つまり、タスクごとに、割り当てられたリソースと 1 つのステータス マネージャーがあります。これは、SQl でリソースに固有の割り当てに変換されますが、ステータス マネージャーは同じです。ただし、データベースのどこにも、特定の割り当てに関する進捗管理者の名前が表示されません。
割り当てには、利用可能な「TaskStatusManagerUID」があります。ステータス マネージャの名前は、TaskStatusManagerUID = ResourceUID である MSP_EPMResource テーブルに関連付けることによって決定できます。
問題は、私のレポートでは、ResourceUIDとTaskstatusManagerUID を見て、同じ割り当てでそれぞれの名前を特定できる必要があることです。
いずれかの名前を表示する結合には成功しましたが、Resource と TaskStatusManager の両方の名前を表示する方法を決定できませんでした。
これは、私が表示しようとしているものの例です (読みやすくするために括弧が追加されています):
(AssignmentUID) (タスク名) (リソース名) (タスクステータスマネージャ名)
以下の詳細情報を参照してください。
これは私が取り組んできたコードですが、うまくいきませんでした:
Select top 100
c.[assignmentuid],
a.[taskname],
c.[resourceuid],
b.[resourcename],
a.[taskstatusmanageruid],
d.[StatusManager]
from [PRJPROD_ProjectWebApp].[dbo].[MSP_EpmAssignment] c
join [PRJPROD_ProjectWebApp].[dbo].[MSP_EpmTask_UserView] a
on a.[TaskUID] = c.[TaskUID]
join [PRJPROD_ProjectWebApp].[dbo].[MSP_EpmResource] b
on b.[ResourceUID] = c.[ResourceUID]
join (select b.resourcename StatusManager
from [PRJPROD_ProjectWebApp].[dbo].[MSP_EpmResource] b) d
on d.[StatusManager] = a.[taskstatusmanageruid]
group by
c.[assignmentuid],
a.[taskname],
c.[resourceuid],
b.[resourcename],
a.[taskstatusmanageruid],
d.[StatusManager]
現在、「文字列からuniqueidentifierへの変換中に変換に失敗しました」というメッセージが表示されます。