....
DECLARE @DATA TABLE (
SpotID INT,
EventID INT,
MaxTemp INT
);
DECLARE @NEWDATA TABLE (
SpotID INT,
T30 INT,
T90 INT,
T100 INT
);
DECLARE
@SPOT AS INT,
@T30 AS INT,
@T90 AS INT,
@T100 AS INT;
INSERT INTO @DATA VALUES
(123, 1, 45),
(236, 1, 109),
(69 , 1, 18),
(123, 2, 216),
(236, 2, 29),
(69 , 2, 84),
(123, 3, 91),
(236, 3, 457),
(69 , 3, 280);
DECLARE STATION CURSOR FOR SELECT SpotID FROM @DATA GROUP BY SpotID;
OPEN STATION;
FETCH NEXT FROM STATION INTO @SPOT;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @T30 = 0;
SET @T90 = 0;
SET @T100 = 0;
SELECT
@T30 = SUM(CASE WHEN MaxTemp > 30 AND MaxTemp < 70 THEN 1 ELSE 0 END),
@T90 = SUM(CASE WHEN MaxTemp >= 70 AND MaxTemp < 100 THEN 1 ELSE 0 END),
@T100 = SUM(CASE WHEN MaxTemp >= 100 THEN 1 ELSE 0 END)
FROM @DATA WHERE SpotID = @SPOT
INSERT INTO @NEWDATA VALUES (@SPOT,@T30,@T90,@T100)
FETCH NEXT FROM STATION INTO @SPOT;
END;
CLOSE STATION;
DEALLOCATE STATION;
SELECT * FROM @NEWDATA
하지 어쨌든 나는 요청 코드를 작성,하지만이 예제는 간단한 커서를 테이블 변수를 만드는 방법을 보여줍니다 루핑 및 새 테이블로로드되는 변수에 대한 응답 쓰기를 수행합니다.
움직이는 부분은 많지만 루프를 수행하는 데 필요한 통찰력을 줄 수 있습니다.
어떤 DBMS가 있습니까? SQL 서버? 미스? –
죄송합니다, 추가를 잊었습니다! 그것은 SQL 서버 – MikeB