Bonjour,

j'aurais encore besoin d'un petit coup de pouce pour regrouper 3 requêtes, les voici :
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
17
18
19
20
21
22
23
24
25
26
SELECT COUNT(DISTINCT ENTETE) AS arriv_sda
  FROM ERREUR INNER JOIN FIC
          ON ERREUR.COD = FIC.COD
 WHERE     ENTETE <> ''
       AND DAT > '2010-04-01 00:00:00'
       AND DAT < '2010-04-30 00:00:00'
       AND ERREUR.COD = 'EBK';
 
SELECT COUNT(DISTINCT ENTETE) AS inst_sda
  FROM ERREUR INNER JOIN FIC
          ON ERREUR.COD = FIC.COD
 WHERE     ENTETE <> ''
       AND DAT > '2010-04-01 00:00:00'
       AND DAT < '2010-04-30 00:00:00'
       AND ERREUR.COD = 'EBK'
       AND ERREUR.DAT_RES IS NULL;
 
SELECT COUNT(DISTINCT ENTETE) AS trt_sda
  FROM ERREUR INNER JOIN FIC
          ON ERREUR.COD = FIC.COD
 WHERE     ENTETE <> ''
       AND DAT > '2010-04-01 00:00:00'
       AND DAT < '2010-04-30 00:00:00'
       AND ERREUR.COD = 'EBK'
       AND ERREUR.DAT_TRT IS NOT NULL
       AND ERREUR.DAT_RES IS NULL;
j'ai essayé ceci :
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
SELECT COUNT( * ) AS ARRIV_SDA,
         COUNT(CASE WHEN ERREUR.DAT_RES IS NULL THEN 1 END)
            AS INST_SDA,
         COUNT(CASE
                  WHEN ERREUR.DAT_TRT IS NOT NULL
                       AND ERREUR.DAT_RES IS NULL
                  THEN
                     1
               END)
            AS TRT_SDA
    FROM ERREUR INNER JOIN FIC
            ON ERREUR.COD = FIC.COD
   WHERE     ENTETE <> ''
         AND DAT > '2010-04-01 00:00:00'
         AND DAT < '2010-04-30 00:00:00'
         AND COD = 'EBK';
mais évidemment ça ne me donne pas les bons résultats car mes 3 requêtes font un COUNT(DISTINCT ...) d'un champ en particulier.

quelqu'un a une idée ? Merci !