SQL Server: расчетная хранимая процедура - PullRequest
0 голосов
/ 29 мая 2018

Как написать хранимую процедуру для возврата промежуточного итога?

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[uspGetPackStatisticsPerShift]
    @ShiftStart DATETIME,
    @ShiftEnd DATETIME,
    @SeriesMasterId INT
AS
    SET NOCOUNT ON;

    --DECLARE @LogicalMachineId int
    --DECLARE @WorkCellId int

    --SELECT @LogicalMachineId = mr.LogicalMachineId, @WorkCellId = lm.WorkCellId
    --FROM Shared.dbo.MachineRegistry mr
    --INNER JOIN Shared.dbo.LogicalMachine lm on lm.Id = mr.LogicalMachineId and lm.Active=1
    --WHERE mr.Active=1 AND mr.SystemId = 'Generic' AND mr.DnsName = @MachineName 

    --IF (@WorkCellId IS NULL)
    --BEGIN
    --  RAISERROR('uspGetBuildStatisticsPerShift() Workstation not defined', 15, 1)
    --  RETURN
    --END

    -- Now get the data
    SELECT
        DATEDIFF(hour, @ShiftStart, psh.DtTmEnd) + 1  AS ShiftHour,
        ifsm.[Id] AS FrameSizeMasterId,
        COUNT(ph.Id) AS TotalPacked
    FROM
        Production.dbo.PackHistory ph
    INNER JOIN 
        Production.dbo.PackStageHistory psh ON psh.PackHistoryId = ph.Id 
                                            AND psh.PackScheduleStageID = 2
    INNER JOIN 
        Production.dbo.ItemSerialNumber isn ON isn.Id = ph.ItemSerialNumberId
    INNER JOIN 
        Production.dbo.ItemMaster im ON im.Id = isn.ItemMasterId
    INNER JOIN 
        Production.dbo.ItemSeriesMaster ism ON ism.Id = im.SeriesMasterId 
                                            AND im.SeriesMasterId =  @SeriesMasterId
    INNER JOIN 
        Production.dbo.ItemFrameSizeMaster ifsm ON ifsm.Id = im.FrameSizeMasterId
    WHERE
        psh.DtTmEnd BETWEEN @ShiftStart AND @ShiftEnd 
        AND psh.Successful = 1 
        AND psh.ReRun = 0
    GROUP BY
        DATEDIFF(hour, @ShiftStart, psh.DtTmEnd) + 1, ifsm.[Id]   
    ORDER BY
        1     

Эта хранимая процедура возвращает общее количество упакованных единиц за смену. Мне нужна хранимая процедура, которая будет возвращать общее количество единицупакован как промежуточный итог.

И, наконец, у меня есть этикетка, которой я хочу передать это значение ... как я могу обновить этикетку после упаковки каждого блока?У меня уже есть страница, обновляющаяся через 1 минуту, чтобы отразить изменения, но я не уверен, как добавить хранимую процедуру к метке в aspx c #

Так вот что выводит мой сохраненный процесс https://ibb.co/jOEkfy

И теперь мне нужно передать эти значения метке aspx, а затем сбросить через 8 часов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...