Imbrication de SUM() et COUNT()
Bonjour tout le monde,
Comme vous allez pouvoir le constater je ne suis pas vraiment un cador en SQL :roll:
Tout d'abord ma requête :
Code:
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
|
SELECT
(SELECT SUM(
SELECT COUNT(DISTINCT TOPE.IDX_OPERATION)
FROM TOPE
LEFT JOIN TBL_ACTEURS TACT ON TOPE.IDX_ACTEUR = TACT.IDX_ACTEUR
AND TACT.DAT_DEBUT_TRAITEMENTS > '2007-07-31'
AND TACT.DAT_FIN_TRAITEMENTS < '2012-07-31'
WHERE TOPE.INT_ORDRE > (SELECT INT_ORDRE
FROM TBL_GROUPEMENTS_SCENARII
WHERE IDX_TYPE_OPERATION = TOPE.IDX_TYPE_OPERATION
AND FLG_MACHINE_DISPO = 1)
)
FROM TBL_OPERATIONS TOPE
WHERE TOPE.IDX_TYPE_OPERATION IN (1,2,3)
)
+
(SELECT SUM(
SELECT COUNT(DISTINCT TOT.IDX_OPERATION)
FROM TOT
LEFT JOIN THO ON TOT.IDX_OPERATION = THO.IDX_OPERATION
INNER JOIN TDO ON THO.STR_LIBELLE_OPERATION = TDO.STR_LIBELLE
AND TOT.DAT_DEBUT_TRAITEMENTS > '2007-07-31'
AND TOT.DAT_FIN_TRAITEMENTS < '2012-07-31'
AND THO.FLG_VISIBLE_ARCHIVE = 1
WHERE TOT.INT_ORDRE > (SELECT INT_ORDRE
FROM TBL_GROUPEMENTS_SCENARII
WHERE IDX_TYPE_OPERATION = TDO.IDX_TYPE_OPERATION
AND FLG_MACHINE_DISPO = 1)
)
FROM TBL_OPERATIONS_TERMINATED TOT
LEFT JOIN TBL_HISTO_OPERATIONS THO ON TOT.IDX_OPERATION = THO.IDX_OPERATION
INNER JOIN TBL_DEF_OPERATIONS TDO ON THO.STR_LIBELLE_OPERATION = TDO.STR_LIBELLE
WHERE TDO.IDX_TYPE_OPERATION IN (1,2,3)
)
AS FLG_MD |
En gros je veux faire la somme de deux sommes (je suis clair ?)
chaque requête est la somme d'un count() sur un interval donné et je veux donc que le count passe sur chaque entier de l'interval du sum()
Erreur en sortie de requête :
Citation:
Msg*156, Niveau*15, État*1, Ligne*3
Syntaxe incorrecte vers le mot clé 'SELECT'.
Msg*102, Niveau*15, État*1, Ligne*12
Syntaxe incorrecte vers ')'.
Msg*156, Niveau*15, État*1, Ligne*18
Syntaxe incorrecte vers le mot clé 'SELECT'.
Msg*102, Niveau*15, État*1, Ligne*29
Syntaxe incorrecte vers ')'.
Donc en gros le select du count ne lui plaît pas ainsi que la parenthèse qui ferme chaque Sum() :aie:
Les count marche très bien chacun de leur côté mais dés que je les mets dans le Sum() ça casse...
Merci de m'éclairer de vos lumières :zoubi: