Ошибка происходит в этих строках:Конверсия удалось при преобразовании значения VARCHAR «» к типу данных междунар в SQL Server
Select
@RankId = @RankId + ', ' + ID
From
RANKS
Where
RANKS.ID IN (Select RANK_ID
From WORKFLOW_RANK
Where WORKFLOW_ID = @WFID)
Select
@LocationId = @LocationId + ', ' + ID
From
LOCATIONS
Where
LOCATIONS.ID in (Select LOCATION_ID
From WORKFLOW_LOCATION
Where WORKFLOW_ID = @WFID)
RankId
и LocationId
объявлены как int
в таблицах.
Полный код:
Declare @i As Int
,@mx As Int
,@Ranks As nVarchar(250)
,@Loc As nVarchar(250)
,@WF As nVarchar(250)
,@WFID as int
,@RankId as int
,@LocationId as int
Create Table #Result (ID Int Identity(1,1),WORKFLOW_ID int,WORKFLOW nVarchar(100), RANKS Varchar(250), LOCATIONS Varchar(250),RankId int,LocationId int)
Insert Into #Result (WORKFLOW_ID, WORKFLOW)
Select Distinct ID, WORKFLOW_NAME
From [WORKFLOW]
Where ID = 1
Select @i = 1, @mx = Max(ID)
From #Result
While (@i < = @Mx)
Begin
Select
@WFID = WORKFLOW_ID,
@WF = WorkFlow,
@Ranks = '',
@Loc = ''
From
#Result
Where
ID = @i
Select
@Ranks = @Ranks + ', ' + RANK_NAME
From
RANKS
Where
RANKS.ID in (Select RANK_ID From WORKFLOW_RANK
Where WORKFLOW_ID = @WFID)
Select
@Loc = @Loc + ', ' + LOCATION_NAME
From
LOCATIONS
Where
LOCATIONS.ID in (Select LOCATION_ID From WORKFLOW_LOCATION
Where WORKFLOW_ID = @WFID)
Select
@RankId = @RankId + ', ' + ID
From
RANKS
Where
RANKS.ID in (Select RANK_ID From WORKFLOW_RANK
Where WORKFLOW_ID = @WFID)
Select
@LocationId = @LocationId + ', ' + ID
From
LOCATIONS
Where
LOCATIONS.ID in (Select LOCATION_ID From WORKFLOW_LOCATION
Where WORKFLOW_ID = @WFID)
Update #Result
Set RANKS = Right(@Ranks, Len(@Ranks) - 2),
LOCATIONS = Right(@Loc, Len(@Loc) - 2),
RankId = Right(@RankId, Len(@RankId) - 2),
LocationId = Right(@LocationId, Len(@LocationId) - 2)
Where ID = @i
SET @i = @i + 1
End
Select * From #Result
Drop Table #Result
Я попытался с указанным выше запросом, но он показывает null в поле RankId и LocationId. – Kedarnath
используйте обновленный. –
Для использования обновленного запроса ошибка «Ошибка преобразования при преобразовании значения varchar« 2,3 »в тип данных int». и ошибка появляется в строке «Обновить #Result Set RANKS = Right (@ Ranks, Len (@Ranks) -2),« – Kedarnath