2015-04-16 24 views
-1
SELECT 
    AvHours.LineNumber, 
    (SProd.PoundsMade/(AvHours.AvailableHRS - SUM (ProdDtime.DownTimeHRS))) AS Throughput, 
    SUM (ProdDtime.DownTimeHRS) AS [Lost Time], 
    (SUM(cast(ProdDtime.DownTimeHRS AS decimal(10,1))) * 100)/(cast(AvHours.AvailableHRS AS decimal(10,1))) AS [%DownTime], 
    SUM(SProd.PoundsMade) AS [Pounds Made], 
    (SProd.PoundsMade/(AvHours.AvailableHRS - SUM (ProdDtime.DownTimeHRS))) * SUM (ProdDtime.DownTimeHRS) AS [Pounds Lost] 
FROM 
    rpt_Line_Shift_AvailableHrs AvHours 
INNER JOIN 
    rpt_Line_Shift_Prod SProd ON AvHours.LineNumber = SProd.LineNumber 
           AND AvHours.Shiftnumber = SProd.Shiftnumber 
INNER JOIN 
    rpt_Line_Shift_ProdDownTime ProdDtime ON (AvHours.LineNumber = ProdDtime.LineNumber AND 
              AvHours.Shiftnumber = ProdDtime.Shiftnumber) 
GROUP BY 
    AvHours.LineNumber, SProd.PoundsMade, AvHours.AvailableHRS 
ORDER BY 
    AvHours.LineNumber 
+1

[!閱讀精彩的在線文檔(https://msdn.microsoft.com/en-us/library/ms345415.aspx) –

回答

0

您可以創建一個新的存儲過程與CREATE PROCEDURE聲明:

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE YourProcedureNameHere 
AS 
BEGIN 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 

END 
GO 

在特定情況下的說法應該是這樣的:

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE YourProcedureNameHere 
AS 
BEGIN 
    SET NOCOUNT ON; 

    SELECT 
     AvHours.LineNumber, 
     (SProd.PoundsMade/(AvHours.AvailableHRS - SUM (ProdDtime.DownTimeHRS))) AS Throughput, 
     SUM (ProdDtime.DownTimeHRS) AS [Lost Time], 
     (SUM(cast(ProdDtime.DownTimeHRS AS decimal(10,1))) * 100)/(cast(AvHours.AvailableHRS AS decimal(10,1))) AS [%DownTime], 
     SUM(SProd.PoundsMade) AS [Pounds Made], 
     (SProd.PoundsMade/(AvHours.AvailableHRS - SUM (ProdDtime.DownTimeHRS))) * SUM (ProdDtime.DownTimeHRS) AS [Pounds Lost] 
    FROM 
     rpt_Line_Shift_AvailableHrs AvHours 
    INNER JOIN 
     rpt_Line_Shift_Prod SProd ON AvHours.LineNumber = SProd.LineNumber 
            AND AvHours.Shiftnumber = SProd.Shiftnumber 
    INNER JOIN 
     rpt_Line_Shift_ProdDownTime ProdDtime ON (AvHours.LineNumber = ProdDtime.LineNumber AND 
               AvHours.Shiftnumber = ProdDtime.Shiftnumber) 
    GROUP BY 
     AvHours.LineNumber, SProd.PoundsMade, AvHours.AvailableHRS 
    ORDER BY 
     AvHours.LineNumber 

END 
GO 

請注意,微軟SQL Management Studio中能自動爲您的存儲過程創建存根(幾乎是此答案中的第一個代碼片段),右鍵單擊[Your DB]/Programmability下的項目「Stored Procedures」並從上下文中選擇「New Stored Procedure ...」 UAL菜單:

enter image description here