CREATE TABLE #CalCulation(Student INT, Dept VARCHAR(100) , col1 DECIMAL(12,2), col2 DECIMAL(12,2), col3 DECIMAL(12,2), col4 VARCHAR(100), col5 DECIMAL(12,2) ,UpFlg TINYINT DEFAULT(0))
CREATE TABLE #Calc(Id INT ,Result DECIMAL(12,2))
DECLARE @Id INT,@Col1 DECIMAL(12,2),@col2 DECIMAL(12,2), @col3 DECIMAL(12,2),@col4 VARCHAR(100),@ExecQuery VARCHAR(200)
INSERT INTO #CalCulation(Student , Dept , col1 , col2 , col3 , col4)
SELECT 100,'ECE', 10 , 45 , 45 , 'col1+col2' UNION ALL
SELECT 101,'EEE', 25 , 25 , 25 , 'col1*col2' UNION ALL
SELECT 102,'MECH', 45 , 50 , 50 , 'col1/col2' UNION ALL
SELECT 103,'CIVIL', 35 , 30 , 3 , '(Col1/Col2)*Col3' UNION ALL
SELECT 104,'BIO', 45 , 90 , 90 , 'Col1-Col2' UNION ALL
SELECT 105,'CSE', 60 , 16 , 65 , 'Col1%Col2'
WHILE EXISTS(SELECT 1 FROM #CalCulation WHERE UpFlg = 0)
BEGIN
SELECT Top 1 @Id = Student, @col1 = col1 , @col2 = col2, @col3 = col3,@col4 = col4 FROM #CalCulation WHERE UpFlg = 0
SET @ExecQuery = 'SELECT '+ CAST(@Id AS VARCHAR) +' ,SUM (' + REPLACE(REPLACE(REPLACE (@col4,'Col1',@col1),'Col2',@col2),'Col3',@col3) +')'
INSERT INTO #Calc (Id ,Result)
EXEC (@ExecQuery)
UPDATE #CalCulation SET UpFlg = 1 WHERE Student = @Id
END
UPDATE #CalCulation SET col5 = Result
FROM #Calc WHERE Id = Student
SELECT * FROM #CalCulation
あなたはこれまでに何をしようとしたのですか? –
https://stackoverflow.com/help/how-to-ask – jarlh
'Col5を派生させ、その値は各レコードのCol4の結果でなければなりません。 '...これは意味をなさない。 –