72 lines
2.7 KiB
Transact-SQL
72 lines
2.7 KiB
Transact-SQL
|
|
|
|
-- =============================================
|
|
-- Author: GAR
|
|
-- Create date: 2015.11.20
|
|
-- Description: Import iniziale dati: Giacenze
|
|
-- =============================================
|
|
CREATE PROCEDURE [import].[stp_importMagRic_step2]
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
--SELECT * FROM [som_ita].[tmp_ImportRic_A] WHERE Descrizione = ''
|
|
--SELECT * FROM MagRic
|
|
--SELECT * FROM AnagLocazioni
|
|
|
|
DECLARE @Test BIT = 0; -- se 1 fa il rollback
|
|
DECLARE @DataImp AS SMALLDATETIME = GETDATE();
|
|
DECLARE @SummaryOfChanges TABLE (Change VARCHAR(10));
|
|
|
|
BEGIN TRANSACTION;;
|
|
|
|
WITH cteImportRicA
|
|
AS (
|
|
SELECT LTRIM(RTRIM(UPPER(Gruppo))) AS Famiglia
|
|
,LTRIM(RTRIM(UPPER(REPLACE(CASE WHEN ISNULL([Descrizione], '') <> ''
|
|
THEN [Descrizione]
|
|
ELSE [CodCostruttore]
|
|
END, '"', '')))) AS Descrizione -- tolgo eventuali "
|
|
,LTRIM(RTRIM(UPPER(NomeCostruttore))) AS NomeCostruttore
|
|
,LTRIM(RTRIM(UPPER(CodCostruttore))) AS CodCostruttore
|
|
,LTRIM(RTRIM(UPPER(CodSomaschini))) AS CodInterno
|
|
,Giacenza
|
|
FROM [som_ita].[tmp_ImportRic_A]
|
|
)
|
|
,cteBis AS (
|
|
SELECT ai.*
|
|
,'MAG00' AS CodLocazione
|
|
,tmp.Giacenza
|
|
FROM cteImportRicA AS tmp
|
|
INNER JOIN dbo.AnagItems AS ai
|
|
ON tmp.Famiglia = ai.Famiglia AND tmp.Descrizione = ai.Descrizione AND tmp.NomeCostruttore = ai.NomeCostruttore AND tmp.CodCostruttore = ai.CodCostruttore AND tmp.CodInterno = ai.CodInterno
|
|
)
|
|
-- SELECT idxItem, 'MAG00' AS CodLocazione , Giacenza FROM cteBis WHERE idxItem = 1310
|
|
MERGE INTO dbo.MagRic AS Target
|
|
USING (
|
|
SELECT idxItem,CodLocazione,SUM(Giacenza) AS Giacenza FROM cteBis
|
|
GROUP BY idxItem ,CodLocazione
|
|
) AS Source
|
|
ON Target.idxItem = Source.idxItem AND Target.CodLocazione = Source.CodLocazione
|
|
WHEN NOT MATCHED BY TARGET THEN
|
|
INSERT (idxItem,CodLocazione,Giacenza,dtLastUpd)
|
|
VALUES (idxItem,CodLocazione,Giacenza,@DataImp)
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET Giacenza = Source.Giacenza ,dtLastUpd = @DataImp
|
|
--WHEN NOT MATCHED BY SOURCE THEN DELETE
|
|
OUTPUT $ACTION INTO @SummaryOfChanges;-- carico i cambiamenti in tabella
|
|
|
|
SELECT * FROM dbo.MagRic
|
|
|
|
IF @Test = 1
|
|
ROLLBACK
|
|
ELSE COMMIT;
|
|
|
|
-- Carico le modifiche fatte in variabile Testo
|
|
SELECT Change + ' : ' + CONVERT(VARCHAR(10), COUNT(*))
|
|
FROM @SummaryOfChanges
|
|
GROUP BY Change;
|
|
|
|
END |