Files
C2P/C2P_Project/ext/Stored Procedures/ext.stp_mergeOrdersHist.sql
T
2014-07-18 16:58:50 +02:00

92 lines
3.7 KiB
Transact-SQL

-- =============================================
-- Author: Steamware
-- Mod. date: 2014.05.22
-- Description: Procedura per import dati in OrdersHist da dati OrdersHistRaw
-- =============================================
CREATE PROCEDURE [ext].[stp_mergeOrdersHist]
(
@source NVARCHAR(20) = 'OrdersHistRaw' -- nome della tabella sorgente
)
AS
BEGIN
SET NOCOUNT ON;
-- Create a temporary table variable to hold the output actions.
DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
-- import con MERGE... verifico tipo di caricamento richiesto!
IF @source = 'OrdersHistRaw' -- carico da tracciato produzione
BEGIN
MERGE INTO dbo.OrdersHist AS Target
USING(
SELECT OrdNum,
OrdRow,
OrdDate,
CodClient,
CodItem,
RawMat,
RawMatCost,
BatchQty,
CodInco,
OrdPrice,
RawMatExtraCost,
PriceOff,
OrdQty,
ProvvCost
FROM ext.OrdersHistRaw ) AS Source
ON Target.Ordnum = Source.Ordnum AND Target.Ordrow = Source.Ordrow
-- non faccio aggiornamento dei dati oppure potrei farlo solo per le righe non elaborate cioè con Codquote non valorizzato
--WHEN MATCHED
--THEN UPDATE SET
-- Orddate = Source.OrdDate,
-- Codclient = Source.CodClient,
-- Coditem = Source.CodItem,
-- Rawmat = Source.RawMat,
-- Rawmatcost = Source.RawMatCost,
-- Batchqty = Source.BatchQty,
-- Codinco = Source.CodInco,
-- Ordprice = Source.OrdPrice,
-- Quotetype = Source.QuoteType,
-- Codquote = Source.CodQuote,
-- Quoterev = Source.QuoteRev,
-- Endcalc = Source.EndCalc
WHEN NOT MATCHED BY TARGET
THEN INSERT ( OrdNum,
OrdRow,
OrdDate,
CodClient,
CodItem,
RawMat,
RawMatCost,
BatchQty,
CodInco,
OrdPrice,
RawMatExtraCost,
PriceOff,
OrdQty,
ProvvCost
--,Quotetype
--,Codquote
--,Quoterev
--,Endcalc
)
VALUES( OrdNum, OrdRow, OrdDate, CodClient, CodItem, RawMat, RawMatCost, BatchQty, CodInco, OrdPrice, RawMatExtraCost, PriceOff, OrdQty, ProvvCost ) -- , QuoteType, CodQuote, QuoteRev, EndCalc )
OUTPUT $action INTO @SummaryOfChanges;
END
-- aggiorno indici tabella ( attenzione durata per tabelle grandi )
ALTER INDEX ALL ON dbo.OrdersHist
REBUILD WITH ( FILLFACTOR = 100, SORT_IN_TEMPDB = ON ) ; -- ,STATISTICS_NORECOMPUTE = ON )
-- aggiorno statistiche tabella
UPDATE STATISTICS dbo.OrdersHist WITH FULLSCAN;
-- Query the results of the table variable.
SELECT Change, COUNT(*) AS CountPerChange
FROM @SummaryOfChanges
GROUP BY Change;
END