私は2つのテーブルを持っています。1つは「タスク」と呼ばれ、もう1つは「タスク」では「TaskDescription」と呼ばれます。セットアップは次のようになります:「taskID(primary)」、「FileID」、「TaskTypeID」およびその他の無関係な列の束。
次に、私の「TaskDescription」では、セットアップは「TaskTypeID」、「TaskTypeDesc」のようになります。
たとえば、TaskTypeIDが1の場合、説明は「admin」になり、TaskTypeIDが2の場合、TaskTypeDescは「Employee」になります。
2つのテーブルは、主キー/外部キー「TaskTypeID」に関係があります。
私がやろうとしているのは、タスクIDと、FileIDが@fileID(パラメーターとして渡す)と一致するTaskDescを取得することです。ただし、私のクエリでは、説明を取得しようとすると、単一の行ではなく複数の行が返されます。
これは私の質問です:
SELECT taskid,
( 'Task ID: '
+ Cast(cf.taskid AS NVARCHAR(15)) + ' - '
+ Cast((SELECT DISTINCT td.tasktypedesc FROM casefiletaskdescriptions
td JOIN
casefiletasks cft ON td.tasktypeid=cft.tasktypeid WHERE cft.taskid =
1841 )AS
NVARCHAR(100))
+ ' - Investigator : ' + ( Cast(i.fname AS NVARCHAR(20)) + ' '
+ Cast(i.lname AS NVARCHAR(20)) ) ) AS
'Display'
FROM casefiletasks [cf]
JOIN investigators i
ON CF.taskasgnto = i.investigatorid
WHERE cf.fileid = 2011630988
AND cf.concluded = 0
AND cf.progressflag != 'Conclude'
「タスクID:1234-管理者-調査員:JohnDoe」のように出力を取得しようとしています。しかし、私はこの部分で問題を抱えています:
CAST((select DISTINCT td.TaskTypeDesc from CaseFileTaskDescriptions td
JOIN CaseFileTasks cft ON td.TaskTypeID=cft.TaskTypeID
where cft.TaskID =1841 )as nvarchar(100))
これは機能しているように見えますが、問題は、値「1841」をハードコーディングして機能させる必要があることです。TaskID選択クエリから返される値を使用して「taskID」変数を割り当てる方法はありますか、それともsqlが行ごとではなくすべてを一度に実行すると思うので機能しませんか。
編集-これはMicrosoftSQLServer ManagementStudio2008にあります