我有一個表@ROOMS_BY_DEPA_KEY1
這樣的:更新結果見表
DECLARE @ROOMS_BY_DEPA_KEY1 TABLE
(
OPRO_KEY INT,
KAPACITETA INT,
WEEK_1 DECIMAL(8,2),
WEEK_2 DECIMAL(8,2),
WEEK_3 DECIMAL(8,2),
WEEK_4 DECIMAL(8,2),
WEEK_5 DECIMAL(8,2),
WEEK_6 DECIMAL(8,2)
)
INSERT INTO @ROOMS_BY_DEPA_KEY1(OPRO_KEY)
VALUES (160000014),(160000015),(160000016),(160000017),(160000018),(160000019),(160000020)
所以填充一些數據表後看起來是這樣的:
我必須更新每個列列WEEK_1
, WEEK_2
,WEEK_3
, WEEK_4
, WEEK_5
,WEEK_6
與來自該表的結果,其從生成3210和KAPACITETA
:
DECLARE @WEEKS_MONTH AS DBO.WEEKS_MONTH_Type
(
WEEKOFMONTH INT,
WEEKSTART DATE,
WEEKEND DATE,
NO_DAYS INT,
AVERAGE_AVAI DECIMAL(8,2)
)
(它的表型,因爲它被用作功能參數)。從表中的結果是這樣的:
爲了得到這個第二個表我有一個UDF:
dbo.f_SCAVAI_GetWeekAverage(@iOPRO_KEY, @WEEKS_MONTH, '1', @iKAPACITETA)
表@WEEKS_MONTH
充滿了一些值(weekofmonth,datestart,dateend,no_days)和它保持不變爲每個呼叫:
我的問題是如何爲每個OPRO_KEY
調用此函數以及如何從返回表更新周列? 列根據WEEKOFMONTH
進行更新。例如:WEEK_1
更新,其中@WEEK_MONTHS.WEEK_OF_MONTH
= 1,WEEK_2
其中@WEEK_MONTHS
= 2
請把你的數據測試的文本,而不是圖像...或者更好directlyas INSERT INTO:以這種方式更容易幫助你。 – etsa
感謝您指出這一點,我已經糾正了我的問題。 – FrenkyB
'PIVOT'聽起來像你在找什麼。 – shawnt00