Files
C2P/C2P_Project/ext/Stored Procedures/stp_mergeDiesGroupDet.sql
T
2014-02-18 18:01:35 +01:00

51 lines
2.0 KiB
Transact-SQL

-- =============================================
-- Author: S.E. Locatelli
-- Create date: 2014.01.08
-- Description: Procedura per import dati in DiesDet da dati DiesGroupRaw
-- Il caricamento principale avviene tramite DiesRaw, questa
-- serve solo per completare i dati mancanti
-- =============================================
CREATE PROCEDURE [ext].[stp_mergeDiesGroupDet]
AS
BEGIN
SET NOCOUNT ON;
-- Create a temporary table variable to hold the output actions.
DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
SET XACT_ABORT ON
BEGIN TRAN
-- vado ad aggiornare i dati dei gruppi di matrici SOLO x i campi <> 0 ( li ritengo come non passati )
MERGE INTO dbo.DiesGroupDet AS Target
USING ( SELECT * FROM ext.DiesGroupRaw )
AS Source
ON Target.CodDiesGroup = Source.CodDiesGroup
WHEN MATCHED THEN
UPDATE SET Price = CASE Source.Price WHEN 0 THEN Target.Price ELSE Source.Price END
, QtyTot = CASE Source.QtyTot WHEN 0 THEN Target.QtyTot ELSE Source.QtyTot END
, QtyEOL = CASE Source.QtyEOL WHEN 0 THEN Target.QtyEOL ELSE Source.QtyEOL END
, ExpLife = CASE Source.ExpLife WHEN 0 THEN Target.ExpLife ELSE Source.ExpLife END
, EOLLife = CASE Source.EOLLife WHEN 0 THEN Target.EOLLife ELSE Source.EOLLife END
, DateMod = GETDATE()
, UserMod = 'UPDATE_DiesGroupRaw'
WHEN NOT MATCHED BY TARGET THEN
INSERT ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife, DateMod, UserMod )
VALUES ( Source.CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'INSERT_DiesGroupRaw' )
-- VALUES ( CodDiesGroup, 0, 1, 0, 0.1, 0.1 ) -- mi da errori in calcoli successivi altrimenti con 0 a ExpLife e EOLLife
OUTPUT $action INTO @SummaryOfChanges;
COMMIT TRAN
-- Query the results of the table variable.
SELECT Change, COUNT(*) AS CountPerChange
FROM @SummaryOfChanges
GROUP BY Change;
END