92 lines
3.7 KiB
Transact-SQL
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 |