一位同事給了我這個存儲過程,並要求幫助根據其結果創建一個sql INSERT語句,但對某些方法有些困惑。例如,我從來沒有在sql中看過CASE語句。我查了一下,但用法與我所得到的不同。如何使用此SQL存儲過程來創建INSERT語句?
這裏是存儲過程
if @ScheduleType Is Null
SELECT Lu_Schedule_Types.ScheduleType,
SUM(CASE WHEN InductionProduction = 1 THEN CASE WHEN (LEFT(DATENAME(Month,
3)) = 'JAN' THEN ItemQty END END) AS I01,
SUM(CASE WHEN InductionProduction = 1 THEN CASE WHEN (LEFT(DATENAME(Month,
Item_Schedule.ItemScheduleDate), 3))
= 'FEB' THEN ItemQty END END) AS I02,
SUM(CASE WHEN InductionProduction = 2 THEN ItemQty ELSE 0 END) AS PRD,
LmpProjectInfo.PlannedQty,
LmpProjectInfo.AuthorizedQty,
LmpProjectInfo.WbsElementID
FROM Item_Schedule
INNER JOIN Lu_Schedule_Types
ON Item_Schedule.ItemScheduleType = Lu_Schedule_Types.ScheduleTypeId
RIGHT OUTER JOIN LmpProjectInfo
ON Item_Schedule.ItemWbsElement = LmpProjectInfo.WbsElementID
WHERE
(Item_Schedule.IsActive = 1)
AND (Item_Schedule.ItemWbsElement = @WbsElement)
AND (Item_Schedule.ItemScheduleDate < DATEADD(d, 1, @EndDate)) AND
(Item_Schedule.ItemScheduleDate >= @StartDate)
GROUP BY Lu_Schedule_Types.ScheduleType
, Lu_Schedule_Types.ScheduleTypeId
, LmpProjectInfo.PlannedQty
, LmpProjectInfo.AuthorizedQty
, LmpProjectInfo.WbsElementID
ORDER BY Lu_Schedule_Types.ScheduleTypeId
我應該可以幫助他了,但我目前數據庫嚮導是,和我一點點在這裏我的深度。我真的很感激幫助/建議/方向。
非常感謝!
告訴他們你是你的深度。 – 2013-04-29 14:25:24
我做了嘿嘿。它的底部。 – 2013-04-29 14:26:24
嗯,我不確定你如何從這個過程的'結果'中得到某些東西,因爲沒有結果,只有一個插入。 (結果最常被稱爲是什麼從選擇返回) – DrCopyPaste 2013-04-29 14:31:51