Files
2014-07-18 16:58:50 +02:00

340 lines
11 KiB
Transact-SQL

CREATE VIEW [dbo].[v_pivot]
AS
WITH ctePivotQuoteP
AS (
SELECT *
FROM (
SELECT QuoteType
, CodQuote
, QuoteRev
, Descr
, Parameter
FROM dbo.QuoteParam
) AS SourceTable
PIVOT(MIN(Parameter) FOR Descr IN (
ItemDescr
, CodifProfilo
, ClasseMerc
, CodClientAssoc
, ClientNameAssoc
, CodDiesGroup
, TipoDies
, DiamDies
, HoleNumDies
, NumDiesInList
, NumDiesExaust
, CodPlant
, KeyAM
, KeyAMIL
, NumSMED
, KgTeo
, KgProdotti
, QuotaMan
, DiesPrice
, DiesExpLife
, DiesEOLife
, DiesByClass
, PkgDesc
, PRMWeight
, PWeight
, PTare
, TareStRatio
, LivPackage
, LivPackageDett
-- START nuovi campi x SIM
, DiesPrice_sim
, SamplePrice
, DiesFullCost
, DiesPriceClientQuote
, DiesTecLife
, DiesCommLife
, MonthSalesPrev
, SalesPrevCost
, DiesFinCost
, ClientQuoteReven
, ExtraDiscountDies
, WSR01_sim
, MSR01_sim
, NetProd01_sim
, DSR_sim
-- end nuovi campi x SIM
)
) AS PivotData
),
-- =================================================
-- PIVOT TABELLA QuoteOC
-- =================================================
ctePivotQuoteOC AS (
SELECT *
FROM (
SELECT QuoteType
, CodQuote
, QuoteRev
, Class01 + ProcessNum AS ClassProc
, C4UG
FROM dbo.QuoteOC
) AS SourceTable
PIVOT(SUM(C4UG) FOR ClassProc IN
( EE01
, GAS01
, MATRICE01
, VENDITA01
, ROTTAME01
, VENDITA04
, ROTTAME04
, IMBALLO04
, TRASPORTI04
, PROVVIGIONI04
)
) AS PivotData
)
-- =================================================
-- MAIN Select Tabella con INTO temp table
-- =================================================
SELECT 'V14.1' AS Vers
, QL.QuoteType
, QL.CodQuote
, QL.QuoteRev
, QL.IdxQState
, QL.CodClient
, CD.ClientName
, QL.CodItem
, QL.CodItemGroup
, QL.RawMat
, QL.UnitWeight
, QL.BatchQty
, QL.CodInco
, CD.TranspZone
, QL.KeyAM
, QL.Note
, QL.PriceOff
, QL.OrdDate
, QL.OrdNum
, QL.OrdRow
, QL.OrdPrice
, QL.OrdQty
, pQP.CodClientAssoc
, pQP.ClientNameAssoc
, pQP.ItemDescr
, pQP.CodifProfilo
, pQP.ClasseMerc
, pQP.TipoDies
, pQP.CodDiesGroup
, CONVERT(DECIMAL(18,6),pQP.DiamDies) AS DiamDies
, CONVERT(INT,pQP.HoleNumDies) AS HoleNumDies
, ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice),0) AS DiesPrice
, CONVERT(DECIMAL(18,6),pQP.DiesExpLife) AS DiesExpLife
, CONVERT(DECIMAL(18,6),pQP.DiesEOLife) AS DiesEOLife
, CONVERT(BIT, ISNULL(pQP.DiesByClass,0)) AS DiesByClass
, CONVERT(DECIMAL(18,6),pQP.NumDiesInList) AS NumDiesInList
, CONVERT(DECIMAL(18,6),pQP.NumDiesExaust) AS NumDiesExaust
, pQP.CodPlant
, pQP.KeyAMIL
, CONVERT(DECIMAL(18,6),pQP.KgTeo) AS KgTeo
, CONVERT(DECIMAL(18,6),pQP.NumSMED) AS NumSMED
, CONVERT(DECIMAL(18,6),pQP.QuotaMan) AS QuotaMan
, CONVERT(DECIMAL(18,6),pQP.PRMWeight) AS PRMWeight
, CONVERT(DECIMAL(18,6),pQP.PWeight) AS PWeight
, CONVERT(DECIMAL(18,6),pQP.PTare) AS PTare
, pQP.LivPackage
, pQP.LivPackageDett
-- START nuovi campi x SIM
, ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice_sim),0) AS DiesPrice_sim
, ISNULL(CONVERT(DECIMAL(18,6),pQP.SamplePrice),0) AS SamplePrice
, ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFullCost),0) AS DiesFullCost
, ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPriceClientQuote),0) AS DiesPriceClientQuote
, ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesTecLife),0) AS DiesTecLife
, ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesCommLife),1) AS DiesCommLife
, ISNULL(CONVERT(INT,pQP.MonthSalesPrev),0) AS MonthSalesPrev
, ISNULL(CONVERT(DECIMAL(18,6),pQP.SalesPrevCost),0) AS SalesPrevCost
, ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFinCost),0) AS DiesFinCost
, ISNULL(CONVERT(DECIMAL(18,6),pQP.ClientQuoteReven),0) AS ClientQuoteReven
, ISNULL(CONVERT(DECIMAL(18,6),pQP.ExtraDiscountDies),0) AS ExtraDiscountDies
, ISNULL(CONVERT(DECIMAL(9,8),pQP.WSR01_sim),0) AS WSR01_sim
, ISNULL(CONVERT(DECIMAL(9,8),pQP.MSR01_sim),0) AS MSR01_sim
, ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd01_sim),0) AS NetProd01_sim
, ISNULL(CONVERT(DECIMAL(9,8),pQP.DSR_sim),0) AS DSR_sim
-- end nuovi campi x SIM
, QRM.RawMatCost
, QRM.RawMatExtraCost
, QRM.RawMatCost + QRM.RawMatExtraCost AS RawMatFullCost -- fare campo calcolato ?!?
, QRM.CodPackag
, pQP.PkgDesc
, QRM.FSR
, ISNULL(pQOC.PROVVIGIONI04, 0) AS ProvvCost
, ISNULL(pQOC.EE01, 0) AS EECost
, ISNULL(pQOC.GAS01, 0) AS GasCost
, ISNULL(pQOC.MATRICE01, 0) AS DiesCost
, ISNULL(pQOC.IMBALLO04, 0) AS PackCost
, ISNULL(pQOC.TRASPORTI04, 0) AS TranspCost
, ISNULL(pQOC.VENDITA01, 0) AS SellCost01
, ISNULL(pQOC.ROTTAME01, 0) AS RefCost01
, ISNULL(pQOC.VENDITA04, 0) AS SellCost04
, ISNULL(pQOC.ROTTAME04, 0) AS RefCost04
, QWI01.WSR AS WSR01
, QWI01.MSR AS MSR01
, QWI01.NetProd AS NetProd01
, QWI01.FC4UG AS FC4UG01
, QWI01.VC4UG AS VC4UG01
, QWI01.OH4UG AS OH4UG01
, QWI01.SC4UG AS SC4UG01
, 1 - (QWI01.DYR * QWI02.DYR * QWI03.DYR * QWI04.DYR) AS DSR
, QWI04.NetProd AS NetProd04
, QWI04.FC4UG AS FC4UG04
, QWI04.VC4UG AS VC4UG04
, ISNULL(pQOC.VENDITA01, 0) + ISNULL(pQOC.ROTTAME01, 0) + ISNULL(pQOC.VENDITA04, 0) + ISNULL(pQOC.ROTTAME04, 0) + ISNULL(pQOC.EE01, 0) + ISNULL(pQOC.GAS01, 0) + ISNULL(pQOC.MATRICE01, 0) + ISNULL(pQOC.IMBALLO04, 0) + ISNULL(pQOC.PROVVIGIONI04, 0) + ISNULL(pQOC.TRASPORTI04, 0) + QWI01.VC4UG + QWI04.VC4UG + QWI01.SC4UG AS FVC
, PD.Charge
, QL.valid
, QL.errorScore
FROM dbo.QuoteList AS QL
INNER JOIN dbo.ClientDet CD
ON QL.CodClient = CD.CodClient
INNER JOIN ctePivotQuoteP AS pQP
ON QL.QuoteType = pQP.QuoteType
AND QL.CodQuote = pQP.CodQuote
AND QL.QuoteRev = pQP.QuoteRev
INNER JOIN dbo.QuoteRM AS QRM
ON QL.QuoteType = QRM.QuoteType
AND QL.CodQuote = QRM.CodQuote
AND QL.QuoteRev = QRM.QuoteRev
AND QL.rawmat = QRM.RawMat
INNER JOIN ctePivotQuoteOC AS pQOC
ON QL.QuoteType = pQOC.QuoteType
AND QL.CodQuote = pQOC.CodQuote
AND QL.QuoteRev = pQOC.QuoteRev
INNER JOIN dbo.QuoteWorkInt AS QWI01
ON QL.QuoteType = QWI01.QuoteType
AND QL.CodQuote = QWI01.CodQuote
AND QL.QuoteRev = QWI01.QuoteRev
AND QWI01.ProcessNum = '01'
INNER JOIN dbo.QuoteWorkInt AS QWI02
ON QL.QuoteType = QWI02.QuoteType
AND QL.CodQuote = QWI02.CodQuote
AND QL.QuoteRev = QWI02.QuoteRev
AND QWI02.ProcessNum = '02'
INNER JOIN dbo.QuoteWorkInt AS QWI03
ON QL.QuoteType = QWI03.QuoteType
AND QL.CodQuote = QWI03.CodQuote
AND QL.QuoteRev = QWI03.QuoteRev
AND QWI03.ProcessNum = '03'
INNER JOIN dbo.QuoteWorkInt AS QWI04
ON QL.QuoteType = QWI04.QuoteType
AND QL.CodQuote = QWI04.CodQuote
AND QL.QuoteRev = QWI04.QuoteRev
AND QWI04.ProcessNum = '04'
INNER JOIN dbo.PlantsDet AS PD
ON PD.CodPlant = pQP.CodPlant
GO
EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_pivot';
GO
EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties =
Begin PaneConfigurations =
Begin PaneConfiguration = 0
NumPanes = 4
Configuration = "(H (1[40] 4[20] 2[20] 3) )"
End
Begin PaneConfiguration = 1
NumPanes = 3
Configuration = "(H (1 [50] 4 [25] 3))"
End
Begin PaneConfiguration = 2
NumPanes = 3
Configuration = "(H (1 [50] 2 [25] 3))"
End
Begin PaneConfiguration = 3
NumPanes = 3
Configuration = "(H (4 [30] 2 [40] 3))"
End
Begin PaneConfiguration = 4
NumPanes = 2
Configuration = "(H (1 [56] 3))"
End
Begin PaneConfiguration = 5
NumPanes = 2
Configuration = "(H (2 [66] 3))"
End
Begin PaneConfiguration = 6
NumPanes = 2
Configuration = "(H (4 [50] 3))"
End
Begin PaneConfiguration = 7
NumPanes = 1
Configuration = "(V (3))"
End
Begin PaneConfiguration = 8
NumPanes = 3
Configuration = "(H (1[56] 4[18] 2) )"
End
Begin PaneConfiguration = 9
NumPanes = 2
Configuration = "(H (1 [75] 4))"
End
Begin PaneConfiguration = 10
NumPanes = 2
Configuration = "(H (1[66] 2) )"
End
Begin PaneConfiguration = 11
NumPanes = 2
Configuration = "(H (4 [60] 2))"
End
Begin PaneConfiguration = 12
NumPanes = 1
Configuration = "(H (1) )"
End
Begin PaneConfiguration = 13
NumPanes = 1
Configuration = "(V (4))"
End
Begin PaneConfiguration = 14
NumPanes = 1
Configuration = "(V (2))"
End
ActivePaneConfig = 0
End
Begin DiagramPane =
Begin Origin =
Top = 0
Left = 0
End
Begin Tables =
End
End
Begin SQLPane =
End
Begin DataPane =
Begin ParameterDefaults = ""
End
End
Begin CriteriaPane =
Begin ColumnWidths = 11
Column = 1440
Alias = 900
Table = 1170
Output = 720
Append = 1400
NewValue = 1170
SortType = 1350
SortOrder = 1410
GroupBy = 1350
Filter = 1350
Or = 1350
Or = 1350
Or = 1350
End
End
End
', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_pivot';