내가 테이블 내용을 가지고 동일한 SQL 서버 테이블 컬럼 인 화학식 변수 :화학식을 갖는 컬럼의 값을 계산하는 방법이 그림에 나타낸 바와 같이
가수식 항목이 포함 수식의 변수로 열 이름.
I는 수식 항목에 주어진 식을 동적으로 계산 기초 할 것이다 각 emp_id
, Tsk_id
및 processed date
대한 대응 계산 열 점수를 얻을 I가 시도
임시 테이블 밀어 애 쓰고 성공한 아래의 코드를 사용하여 커서 내에서 동적 SQL로이를 달성하십시오. 누구나 CTE 등을 사용하여 더 나은 방법을 제안 할 수 있습니까?
DECLARE @EMP_ID nVARCHAR(255)
DECLARE @TSK_ID nVARCHAR(255)
DECLARE @PROCESSEDDATE nVARCHAR(255)
DECLARE @SQLCMD nVARCHAR(max)
DECLARE @SQLTEXT nvarchar(max)
DECLARE db_cursor CURSOR FOR
SELECT EMP_ID,TSK_ID,PROCESSEDDATE from dbo.[Formula_Cal] group by EMP_ID,TSK_ID,PROCESSEDDATE
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @EMP_ID,@TSK_ID,@PROCESSEDDATE
WHILE @@FETCH_STATUS = 0
BEGIN
Set @SQLTEXT = (Select formula from dbo.[Formula_Cal] where [email protected]_ID and TSK_ID [email protected]_ID and [email protected])
Set @SQLCMD ='select emp_id,TSK_ID,convert(decimal(18,2),(' [email protected]+ ')) As Score FROM [Formula_Cal] where TSK_ID = '[email protected]_ID+' and EMP_ID = '[email protected]_ID
--Select @SQLTEXT
--Select @SQLCMD
insert into dbo.TMP_ACHSCR(emp_id,TSK_id,Score)
Exec sp_executesql @SQLCMD
FETCH NEXT FROM db_cursor INTO @EMP_ID,@TSK_ID,@PROCESSEDDATE
END
CLOSE db_cursor
DEALLOCATE db_cursor
codereview.stackexchange.com – scsimon
여기서 커서가 필요하지는 않습니다. 하나의 동적 SQL 쿼리에서 모든 것을 선택할 수 있습니다. –