250 lines
7.7 KiB
Transact-SQL
250 lines
7.7 KiB
Transact-SQL
|
|
|
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
-- Author: S.E. Locatelli
|
|
-- Create date: 2013.11.20
|
|
-- Description: Procedure x calcoli e test import dati e prove varie
|
|
-- =============================================
|
|
CREATE PROCEDURE [dbo].[stp_zzz_scratch]
|
|
AS
|
|
BEGIN
|
|
|
|
-- dichiaro e imposto periodo di calcolo dei valori
|
|
-- andrà impostato in una tabella e mi determinerà la versione dei dati
|
|
DECLARE @dateFrom AS DateTime;
|
|
DECLARE @dateTo AS DateTime;
|
|
|
|
SET @dateFrom = '20100101'
|
|
SET @dateTo = '20130929'
|
|
|
|
-- ==========================================
|
|
-- IMPORTAZIONE DATI CSV
|
|
-- ==========================================
|
|
exec tmp.importProductionLogRaw
|
|
exec tmp.importClientsRaw
|
|
exec tmp.importTranspCostRaw
|
|
exec tmp.importItemsRaw
|
|
exec tmp.importPackagRaw
|
|
exec tmp.importDiesRaw
|
|
-- questo sotto va fatto solo se ci sono dati da integrare in DiesRaw
|
|
exec tmp.importDiesGroupRaw
|
|
|
|
select top 10 * FROM tmp.ProductionLogRaw
|
|
select * FROM tmp.ClientsRaw
|
|
select * FROM tmp.ItemsRaw
|
|
select * FROM tmp.PackagRaw
|
|
select * FROM tmp.DiesRaw
|
|
select * FROM tmp.DiesGroupRaw
|
|
|
|
-- Se ci sono record con Item doppi li cancello????
|
|
SELECT CodItem,COUNT(*) as qty
|
|
FROM ( SELECT DISTINCT * FROM tmp.ItemsRaw ) AS a
|
|
GROUP BY CodItem
|
|
having COUNT(*)>1
|
|
|
|
delete from tmp.ItemsRaw
|
|
where CodItem IN
|
|
(
|
|
SELECT CodItem
|
|
FROM ( SELECT DISTINCT * FROM tmp.ItemsRaw ) AS a
|
|
GROUP BY CodItem
|
|
having COUNT(*)>1
|
|
)
|
|
|
|
|
|
-- ==========================================
|
|
-- CARICO DATI IN RAW ( da Char a Tipi corretti )
|
|
-- ==========================================
|
|
exec tmp.convertClientsRaw
|
|
exec tmp.convertTranspCostRaw
|
|
exec tmp.convertItemsRaw
|
|
exec tmp.convertProductionLogRaw
|
|
exec tmp.convertPackagRaw
|
|
exec tmp.convertDiesRaw
|
|
|
|
-- necessario se integriamo i dati x i gruppi di matrici con un file
|
|
exec tmp.convertDiesGroupRaw
|
|
|
|
select top 10 * FROM ext.ProductionLogRaw
|
|
select * FROM ext.ClientsRaw
|
|
select * FROM ext.ItemsRaw
|
|
select * FROM ext.PackagRaw
|
|
select * FROM ext.DiesRaw
|
|
SELECT * FROM ext.DiesGroupRaw
|
|
|
|
-- elimino a mano dato con oltre 68 anni di evento...
|
|
select *
|
|
--delete
|
|
from ext.ProductionLogRaw
|
|
where DATEDIFF(YEAR,EventStart,EventEnd)> 10
|
|
|
|
exec ext.stp_mergeAgentsDet
|
|
exec ext.stp_mergeClientDet 'ProductionLogRaw'
|
|
exec ext.stp_mergeClientDet 'ClientsRaw'
|
|
exec ext.stp_mergeTranspCostDet 'TranspCostRaw'
|
|
exec ext.stp_mergePlantsDet
|
|
exec ext.stp_mergeCost2Plant
|
|
exec ext.stp_mergeItemDet 'ItemsRaw'
|
|
exec ext.stp_mergePackagDet 'ProductionLogRaw' -- 'PackagRaw'
|
|
|
|
-- QUESTE ANDREBBERO ESEGUITO DOPO ext.stp_updateProductionLog prendendo in considerazione un periodo di tempo
|
|
-- di tre anno o comunque stabilito a priori predefinito ( configurabile a sistema )
|
|
-- DA VERIFICARE
|
|
exec ext.stp_mergePackage2ItemClient 'ProductionLog', @dateFrom, @dateTo
|
|
exec ext.stp_mergePackage2Item 'ProductionLog', @dateFrom, @dateTo
|
|
exec ext.stp_mergePackage2 'ProductionLog', @dateFrom, @dateTo
|
|
|
|
exec ext.stp_mergeDiesDet
|
|
-- se ricarico diesgroup... ricarico solo i campi che nel file sono <> ''
|
|
exec ext.stp_mergeDiesGroupDet
|
|
|
|
exec ext.stp_mergeRawMat
|
|
exec ext.stp_updateProductionLog
|
|
|
|
---- aggiorno quota agenti a 0.037
|
|
----update AgentsDet set quotaperc=0.0374
|
|
|
|
|
|
SELECT DISTINCT dr.CodItem FROM ext.DiesRaw dr LEFT OUTER JOIN ItemDet id ON dr.CodItem = id.CodItem
|
|
where id.CodItemGroup is null
|
|
|
|
select * from ClientDet
|
|
select * from ItemDet
|
|
select * from Package2ItemClient
|
|
select * from Package2Item
|
|
select * from Package2
|
|
select * from PackagDet
|
|
select * from DiesGroupDet where EOLLife > 0
|
|
select * from DiesDet
|
|
select * from DiesGroupDet
|
|
select * from AgentsDet
|
|
select * from PlantsDet
|
|
select * from Cost2Plant
|
|
select * from utilities
|
|
select top 100 * from ProductionLog
|
|
|
|
--update tmp.ProductionLogRaw
|
|
--set
|
|
-- okPr = 1
|
|
-- , okDi = 1
|
|
-- , okQM = 1
|
|
-- , okSc = 1
|
|
|
|
select distinct ProcessNum from ProductionLog
|
|
|
|
select top 10 * from ext.ProductionLogRaw
|
|
|
|
|
|
---- fix errore packaging
|
|
--update tmp.ProductionLogRaw
|
|
--SET CodPackag='4'
|
|
--where CodPackag LIKE '%4%' and CodPackag <> '4'
|
|
--select * from tmp.ProductionLogRaw where CodPackag LIKE '%4%' and CodPackag <> '4'
|
|
|
|
SELECT p.CodDies, CodItem, CodClient, CodPackag, p.* FROM ext.ProductionLogRaw AS p
|
|
LEFT JOIN dbo.DiesDet AS d ON p.CodDies = d.CodDies
|
|
WHERE CodItem IS NULL
|
|
|
|
|
|
|
|
-- parte CALCOLI!!!
|
|
|
|
select * from QuoteList
|
|
|
|
select * from ClientDet where CodClient='05000001048'
|
|
|
|
select * from itemdet
|
|
where CodItem like '1PT00102%'
|
|
|
|
select * from RawMatDet
|
|
|
|
|
|
--Q 1312130001 0 05000001048 1PT00102 A 7020 7673,400 1000 CPT NULL NULL NULL NULL
|
|
|
|
SELECT --TOP 10
|
|
dd.CodItem, pl.RawMat, dd.CodItem + '-' + pl.RawMat as KeyAM, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
|
|
,dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL
|
|
,0 as NumSMED -- numero cambi, da sistemare...
|
|
, SUM(QtyOUT) as KgTeorici, SUM(Duration) AS Durata
|
|
,ISNULL(SUM(QtyOUT),0)/ISNULL(SUM(Duration), 1) as ProduttTeo
|
|
FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
|
|
WHERE pl.ProcessNum='01' and pl.EventType=1
|
|
GROUP BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
|
|
ORDER BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, SUM(QtyOUT) DESC
|
|
|
|
-- ==========================================
|
|
-- re-insert dei dati di produzione x statistiche
|
|
-- ==========================================
|
|
exec stp_TPS_upsert @dateFrom, @dateTo
|
|
exec stp_TD_upsert @dateFrom , @dateTo
|
|
-- exec stp_TI_upsert @dateFrom , @dateTo -- adesso sono già calcolati e inseriti in Package2 / Package2Item
|
|
|
|
-- ==========================================
|
|
-- salvo nuova revisione dati di produzione...
|
|
-- Va messa in ogni procedura di update con 'procedura' e versione anno-mese-giorno
|
|
-- ==========================================
|
|
INSERT INTO RevHistory
|
|
SELECT 'P', ISNULL(MAX(RevNum),0) + 1, GETDATE(), 'Aggiornamento dati di produzione x fase 04 ' + CONVERT(NVARCHAR(20), @dateFrom, 120) + ' --> ' +CONVERT(NVARCHAR(20), @dateTo, 120)
|
|
FROM RevHistory
|
|
WHERE RevType = 'P'
|
|
|
|
|
|
select * from RevHistory
|
|
|
|
-- simulazione tempo di calcolo: circa 50/sec
|
|
---- aggiornamento dei dati dell'offerta in oggetto
|
|
--DECLARE @tick DATETIME,
|
|
-- @idx INT = 100
|
|
--SET @tick = GETDATE()
|
|
--WHILE @idx > 0
|
|
--BEGIN
|
|
-- EXEC stp_QL_update 'Q', 1312130001, 0
|
|
-- SELECT @idx = @idx - 1
|
|
--END
|
|
--SELECT GETDATE() - @tick as tempo
|
|
|
|
DECLARE @QuoteType CHAR(1) = 'Q',
|
|
@CodQuote BIGINT = 1312130001,
|
|
@QuoteRev INT = 0
|
|
|
|
EXEC stp_QL_update @QuoteType, @CodQuote, @QuoteRev
|
|
SELECT * FROM QuoteList WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
|
|
SELECT * FROM QuoteRM WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
|
|
SELECT * FROM QuoteWorkInt WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
|
|
SELECT * FROM QuoteWorkExt WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
|
|
SELECT * FROM QuoteOC WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
|
|
SELECT * FROM QuoteParam WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
|
|
|
|
select top 10 * from ItemDet
|
|
|
|
SELECT * FROM RawMatDet
|
|
|
|
SELECT top 10 * FROM TabProdSc
|
|
SELECT top 10 * FROM TabDifett
|
|
-- SELECT * FROM TabImbArt
|
|
-- SELECT * FROM TabImbGrp
|
|
SELECT * FROM PackagDet
|
|
SELECT * FROM Package2
|
|
|
|
---- test gestione selezione CodPackag corretto
|
|
--SELECT TOP 5 * FROM Package2ItemClient
|
|
--SELECT TOP 5 * FROM Package2Item
|
|
--SELECT TOP 5 * FROM Package2
|
|
|
|
SELECT dbo.f_getCodPackag('1EL00005', '05000001048')
|
|
--SELECT dbo.f_getCodPackag('1AN00001', '05000000137')
|
|
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|