こんにちは、以下のクエリを試しています。ProjectID の出力は 1,2,3 です。他のテーブルから ProjectID を使用してデータを取得しようとしています。
DECLARE @ProjectID varchar(100)
DECLARE @ImpactIntakeID varchar(100)
set @ProjectID =
(SELECT STUFF ((SELECT ',' + CAST(Proj_ID AS VARCHAR) FROM PROJECT
WHERE YEAR(Enter_Dt) < (YEAR(GETDATE-()-7)) FOR XML PATH('')), 1, 1, '')
AS Enter_Date)
print @ProjectID
set @ImpactIntakeID =
(SELECT STUFF ((SELECT ',' + CAST([IMPCT_INTAKE_ID] AS VARCHAR) FROM [IMPCT_INTAKE_REQ]
WHERE [CNSDR_PROJ_ID] in (@ProjectID) FOR XML PATH('')), 1, 1, '')
AS ImpactIntakeID)
print @ImpactIntakeID
変換エラーが発生します。varchar 値 '1,2,3' をデータ型 int に変換するときに変換に失敗しました。どこで変換が欠落しているかわかりません。私も以下を試しました..
set @ImpactIntakeID =
(SELECT STUFF ((SELECT ',' + CAST([IMPCT_INTAKE_ID] AS VARCHAR) FROM [IMPCT_INTAKE_REQ]
WHERE [CNSDR_PROJ_ID] in (''+@ProjectID+'') FOR XML PATH('')), 1, 1, '')
AS ImpactIntakeID)
と
set @ImpactIntakeID =
(SELECT STUFF ((SELECT ',' + CAST([IMPCT_INTAKE_ID] AS VARCHAR) FROM [IMPCT_INTAKE_REQ]
WHERE CAST([CNSDR_PROJ_ID] AS VARCHAR) in (@ProjectID) FOR XML PATH('')), 1, 1, '')
AS ImpactIntakeID)
変換が不足している場所を誰か助けてください...