Avec les CTE sous SQL server 2005 on est censés pouvoir faire beaucoup de choses, mais quand je veux que les critères de départ soient filtrés avec une CTE récursive par exemple celle ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
WITH RPL (PART, SUBPART, QTE) 
AS 
   ( 
    SELECT RT.PART, RT.SUBPART, CAST(RT.QTE AS DECIMAL(15,4))
       FROM View_1 RT 
       WHERE RT.PART = 251180
    UNION ALL 
      SELECT PARENT.PART, CHILD.SUBPART, CAST((ISNULL(PARENT.QTE,0) * ISNULL(CHILD.QTE,0)) AS DECIMAL(15,4))
       FROM RPL PARENT,  View_1 CHILD WHERE (PARENT.SUBPART = CHILD.PART) 
   ) 
 
SELECT SUM(R.QTE), T.DPT_FAMILLE, T.DPT_SFAMILLE, T.DPT_LIBELLE, T.DPT_PUA1 
FROM RPL R INNER JOIN T_DEVPART_DPT T ON (R.SUBPART = T.DPT_ID)
WHERE T.DPT_STYPE = 4 AND R.QTE <> 0
GROUP BY T.DPT_FAMILLE, T.DPT_SFAMILLE, T.DPT_LIBELLE , T.DPT_PUA1
Comment faire pour remplacer le
WHERE RT.PART = 251180
en dur, par des critères , de la même manière qu'une vue.
Je peux bien sur placer cette CTE dans une PS avec paramètres, mais
comment faire sans PS, en pur SQL