1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| WITH
T AS
(
SELECT
DENSE_RANK() OVER(PARTITION BY effect_date ORDER BY effect_date DESC) AS RANG,
ivd.item AS [ACTICLE],
i.description AS [DESCRIPTION],
i.product_code AS [CODE PRODUIT],
ivd.vend_num AS [N° FOURNISSEUR],
vadd.name AS [FOURNISSEUR],
ivd.rank AS [RANG],
vall.curr_code AS [DEVISE],
ivp.effect_date AS [DATE D APPLICATION],
ivp.brk_qty_conv##1 as [BORNE QUANTITE 1],
ivp.brk_cost_conv##1 as [PRIX UNITAIRE 1],
ivp.brk_qty_conv##2 as [BORNE QUANTITE 2],
ivp.brk_cost_conv##2 as [PRIX UNITAIRE 2],
ivp.brk_qty_conv##3 as [BORNE QUANTITE 3],
ivp.brk_cost_conv##3 as [PRIX UNITAIRE 3],
ivp.brk_qty_conv##4 as [BORNE QUANTITE 4],
ivp.brk_cost_conv##4 as [PRIX UNITAIRE 4],
ivp.brk_qty_conv##5 as [BORNE QUANTITE 5],
ivp.brk_cost_conv##5 as [PRIX UNITAIRE 5]
FROM
dbo.vendor_all vall
INNER JOIN dbo.vendaddr vadd ON vall.vend_num = vadd.vend_num
INNER JOIN dbo.itemvend ivd ON vadd.vend_num = ivd.vend_num
INNER JOIN dbo.itemvendprice ivp ON ivd.item=ivp.item
INNER JOIN dbo.item i ON ivp.item=i.item
INNER JOIN dbo.matltran mt ON i.item=mt.item
WHERE
ivd.rank = '1'
AND i.product_code IN ('CAT','CAP')
AND i.p_m_t_code = 'P'
AND mt.trans_date > '2008-01-01'
GROUP BY
ivd.item
,i.description
,i.product_code
,ivd.vend_num
,ivd.rank
,vall.curr_code
,vadd.name
,ivp.effect_date
,ivp.brk_qty_conv##1
,ivp.brk_cost_conv##1
,ivp.brk_qty_conv##2
,ivp.brk_cost_conv##2
,ivp.brk_qty_conv##3
,ivp.brk_cost_conv##3
,ivp.brk_qty_conv##4
,ivp.brk_cost_conv##4
,ivp.brk_qty_conv##5
,ivp.brk_cost_conv##5
)
SELECT *
FROM T
WHERE RANG = 2
ORDER BY item ASC |
Partager