一位同事给了我这个存储过程,并要求帮助根据其结果创建一个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