所以我的代碼工作完美無瑕,但我需要進行一次升級,而且我無法確定它。 基本上。我每年的價格高達2052年(40年)。我stag these這些價格,將每個ID的起始年份和5個價格連成一排(共72個ID)。我也有一個行號,從550開始,每次循環增加2。有一個地區(我現在知道的)每次在循環中需要增加3個區域。當您在循環結束時設置變量值時,是否有辦法設置IF語句或CASE語句?所以,當我去「SET @LINE = @LINE + 2」我需要爲是類似的條件..IF對於SET變量
CASE
WHEN DISTRICT = 'ALASKA'
THEN @LINE = @LINE + 3
ELSE @LINE = @LINE + 2
END
以下是我與現在的工作。
DECLARE @IDF INT
DECLARE @FLAG INT
DECLARE @LINE INT
TRUNCATE TABLE #CODE
SET @IDF = 1
WHILE (@IDF < 73)
BEGIN
SET @FLAG = (SELECT min(YEAR) FROM #TABLE1 WHERE ID = @IDF)
SET @LINE = 550
WHILE (@FLAG < 2053)
BEGIN
INSERT INTO #CODE(ID,DISTRICT,year,LINE,t1,t2,t3,t4,t5)
SELECT ID,
DISTRICT,
year,
(@LINE) AS 'LINE',
(SELECT YEARLY_PRICING FROM #TABLE1 b WHERE b.ID = @IDF AND b.YEAR = @FLAG) AS 't1',
(SELECT YEARLY_PRICING FROM #TABLE1 b WHERE b.ID = @IDF AND b.YEAR = @FLAG+1) AS 't2',
(SELECT YEARLY_PRICING FROM #TABLE1 b WHERE b.ID = @IDF AND b.YEAR = @FLAG+2) AS 't3',
(SELECT YEARLY_PRICING FROM #TABLE1 b WHERE b.ID = @IDF AND b.YEAR = @FLAG+3) AS 't4',
(SELECT YEARLY_PRICING FROM #TABLE1 b WHERE b.ID = @IDF AND b.YEAR = @FLAG+4) AS 't5'
FROM #TABLE1 WHERE ID = @IDF AND YEAR = @FLAG
SET @FLAG = @FLAG + 5
SET @LINE = @LINE + 2
END
SET @IDF = @IDF + 1
END
他目前的代碼是罰款他的說法。他想要幫助下一步。 –
@jumpingcode不需要挑選一個短語。 Op明確解釋了他/她需要什麼 – Lamak