Num_Inter Engin Num_Depart Fonction Centre Nbre_Agent Validation DH_Depart Date_1
00111 VSRL 1 1 VSRL MIRAMONT DE GUYENNE 1 Incohérence 02/01/2014 12:25:01 janv 2 2014 12:25
00111 VSRL 1 1 VSRL MIRAMONT DE GUYENNE 2 Valide 02/01/2014 12:25:00 janv 2 2014 12:25
Ma requête :

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
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
SELECT  DISTINCT  RIGHT(EE.ID_INTERVENTION,5) Num_Inter,
                  EE.ID_TYPE_ENGIN+' '+CONVERT(VARCHAR,EE.NUMERO_MATERIEL,1) Engin,
                  EE.NUM_ORDRE Num_Depart,
                  EE.FONCTION Fonction,
                  C.LIB_CENTRE Centre,
                  COUNT(AE.ID_AGENT) Nbre_Agent,
                  CASE WHEN EE.ID_TYPE_ENGIN = EE.FONCTION AND COUNT(AE.ID_AGENT) IN ('2','3') THEN 'Valide' ELSE 'Incohérence' END Validation,
                  AE.DH_DEPART DH_Depart,                  
                  LEFT(AE.DH_DEPART,18) Date_1,
                  DATEPART(DAY,AE.DH_DEPART) Jour,
                  DATEPART(HOUR,AE.DH_DEPART)Heure,
                  YEAR(AE.DH_DEPART) Annee
 
FROM OPS_AGENT_ENGAGE AE
 
INNER JOIN OPS_ENGIN_ENGAGE EE ON AE.CLE_ENGIN_ENG = EE.CLE
INNER JOIN OPS_CENTRE C ON AE.ID_CENTRE = C.ID_CENTRE
 
WHERE   AE.NUM_RENFORT < '99'
AND     AE.ID_FONCTION NOT LIKE 'NR'
AND     AE.ID_FONCTION NOT IN ( 'INFIRMIER SP','CHEF DE GROUPE','CHEF DE COLONNE','CHEF DE SITE','REFERENT PGR','CDC CODIS','CHEF CMIC','CHEF CMIR','CDC FDF','CDG FDF',
                                'CEQ GRIMP','CH DE SALLE CTA','CT BIO','CT CYNO','CT COMMUNAL FDF','CT FEU TACTIQUE','CT GRIMP','CT NRBC','CT PLONGEE','CT PREV','CT RAD',
                                'CT RCH','CT SD','CT TRANS','CU CYNO','CU GRIMP','CU NRBC','CU SD','EQ FEU TACTIQUE','EQ GRIMP','FLECHEUR ANIMAL','INFIRMIER PSY',
                                'INFIRMIER C 15','MEDECIN SP','MEDECIN PSY','MEDECIN C 15','OP CTA','PHARMACIEN','PLONGEUR','SEV','SOUSAN','VETERINAIRE','REF PHOTOVOLT',
                                'RCCI','RCCI 1','FLECHEUR 1','SAV')
AND     AE.DH_DEPART BETWEEN AE.DH_DEPART AND DATEADD(MI, 1, AE.DH_DEPART)
AND     EE.ID_TYPE_ENGIN = EE.FONCTION
AND     EE.ID_TYPE_ENGIN IN ('VSRM','VSRL')
AND     YEAR(AE.DH_ALERTE) = 2014
 
GROUP BY  RIGHT(EE.ID_INTERVENTION,5),
          EE.ID_TYPE_ENGIN+' '+CONVERT(VARCHAR,EE.NUMERO_MATERIEL,1),
          EE.NUMERO_MATERIEL,
          EE.FONCTION,
          EE.NUM_ORDRE,
          C.LIB_CENTRE,
          AE.DH_DEPART,
          EE.ID_TYPE_ENGIN
 
 
UNION
 
SELECT  DISTINCT  RIGHT(EE.ID_INTERVENTION,5) Num_Inter,
                  EE.ID_TYPE_ENGIN+' '+CONVERT(VARCHAR,EE.NUMERO_MATERIEL,1) Engin,
                  EE.NUM_ORDRE Num_Depart,
                  EE.FONCTION Fonction,
                  C.LIB_CENTRE Centre,
                  COUNT(AE.ID_AGENT) Nbre_Agent,
                  CASE WHEN EE.ID_TYPE_ENGIN != EE.FONCTION AND COUNT(AE.ID_AGENT) IN ('3','4') THEN 'Valide' ELSE 'Incohérence' END Validation,
                  AE.DH_DEPART DH_Depart,                  
                  LEFT(AE.DH_DEPART,18) Date_1,
                  DATEPART(DAY,AE.DH_DEPART) Jour,
                  DATEPART(HOUR,AE.DH_DEPART)Heure,
                  YEAR(AE.DH_DEPART) Annee
 
FROM OPS_AGENT_ENGAGE AE
 
INNER JOIN OPS_ENGIN_ENGAGE EE ON AE.CLE_ENGIN_ENG = EE.CLE
INNER JOIN OPS_CENTRE C ON AE.ID_CENTRE = C.ID_CENTRE
 
WHERE   AE.NUM_RENFORT < '99'
AND     AE.ID_FONCTION NOT LIKE 'NR'
AND     AE.ID_FONCTION NOT IN ( 'INFIRMIER SP','CHEF DE GROUPE','CHEF DE COLONNE','CHEF DE SITE','REFERENT PGR','CDC CODIS','CHEF CMIC','CHEF CMIR','CDC FDF','CDG FDF',
                                'CEQ GRIMP','CH DE SALLE CTA','CT BIO','CT CYNO','CT COMMUNAL FDF','CT FEU TACTIQUE','CT GRIMP','CT NRBC','CT PLONGEE','CT PREV','CT RAD',
                                'CT RCH','CT SD','CT TRANS','CU CYNO','CU GRIMP','CU NRBC','CU SD','EQ FEU TACTIQUE','EQ GRIMP','FLECHEUR ANIMAL','INFIRMIER PSY',
                                'INFIRMIER C 15','MEDECIN SP','MEDECIN PSY','MEDECIN C 15','OP CTA','PHARMACIEN','PLONGEUR','SEV','SOUSAN','VETERINAIRE','REF PHOTOVOLT',
                                'RCCI','RCCI 1','FLECHEUR 1','SAV')
AND     AE.DH_DEPART BETWEEN AE.DH_DEPART AND DATEADD(MI, 1, AE.DH_DEPART)
AND     EE.FONCTION = 'FPTSR'
AND     EE.ID_TYPE_ENGIN = 'FPT'
AND     YEAR(AE.DH_ALERTE) = 2014
 
GROUP BY  RIGHT(EE.ID_INTERVENTION,5),
          EE.ID_TYPE_ENGIN+' '+CONVERT(VARCHAR,EE.NUMERO_MATERIEL,1),
          EE.NUMERO_MATERIEL,
          EE.FONCTION,
          EE.NUM_ORDRE,
          C.LIB_CENTRE,
          AE.DH_DEPART,
          EE.ID_TYPE_ENGIN
Existe t'il un moyen de supprimer les secondes, hormis de passer par un "LEFT", où on le voit bien, ne fait que les masquer mais ne les ignore pas pour mon compte d'agents? J'ai un delta de 1 seconde qui m'empêche de faire ce compte.
Ou alors existerait-il un moyen de faire un "REPLACE" sur les secondes afin d'arriver à un format de date : JJ/MM/AA HH:mm:00

Afin d'eviter toutes confusions, j'ai édité ma requête avec uniquement "LEFT(AE.DH_DEPART,18)", j'ai toujours 2 lignes qui apparaissent.

Cordialement.Taz