Bonjour,
Tout allait pour le mieux dans le meilleur des mondes quand je me suis rendu compte de résultat que je n'arrive pas a m'explique dans les colonnes 'nbj_co' et 'te'
Le but de la colonne 'nbj_co' était de faire le même calcul que la colonne 'nbj' raté
le but de la colonne 'te' était de cumuler un temps journalier 'motidur' sur la période entre 'dtdeb' et 'dtfin' encore raté
J’ai fait différents essais avec 'OVER' toujours raté
J’ai fait des recherches (certainement mal faites) mais toujours raté
Alors
Une idée, une piste, un lien qui m’expliquerait ma stupidité, je prends tout.
Encore merci pour votre temps.
Cordialement.
Code sql : 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 SELECT deb.matri , deb.dat AS dtdeb , MIN(fin.dat)AS dtfin , deb.motif,(MIN(fin.dat)- deb.dat )+1 as nbj , count(*) as nbj_co , extract(MONTH from deb.dat) as m , extract(year from deb.dat) as y , sum (deb.motidur) as te , ROW_NUMBER()over(partition by deb.motif order by deb.matri,deb.dat,deb.motif ) as rmu , CASE --WHEN (MIN(fin.dat)- deb.dat )+1 >= 1 AND (MIN(fin.dat)- deb.dat )+1 <= 3 then 'MI' WHEN (MIN(fin.dat)- deb.dat )+1 between 1 and 3 then 'MI' WHEN (MIN(fin.dat)- deb.dat )+1 between 4 and 7 then 'C' WHEN (MIN(fin.dat)- deb.dat )+1 between 8 and 180 then 'MO' WHEN (MIN(fin.dat)- deb.dat )+1 > 180 then 'LO' END AS rr FROM hophabs deb INNER JOIN hophabs fin ON deb.matri = fin.matri AND deb.motif = fin.motif AND deb.dat <= fin.dat --and extract(year from deb.dat) = extract(year from fin.dat ) WHERE NOT EXISTS (SELECT NULL FROM hophabs pre WHERE deb.matri = pre.matri AND deb.motif = pre.motif AND deb.dat = pre.dat + 1 --and extract(year from deb.dat) = extract(year from pre.dat ) ) AND NOT EXISTS (SELECT NULL FROM hophabs sui WHERE fin.matri = sui.matri AND fin.motif = sui.motif AND fin.dat = sui.dat - 1 --and extract(year from fin.dat) = extract(year from sui.dat ) ) and deb.motype = 'A' and deb.valoris = 'J' and deb.motif IN ( 'MALA' ,'CP') and deb.matri betWeen '00000005' and '00000010' --and extract(year from deb.dat) = '2012' GROUP BY deb.matri ,deb.dat ,deb.motif ,deb.motidur ORDER BY deb.matri,deb.dat
Partager