1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| with data(matri,cohis,his01,his02,his03,his04,his05,his06,his07,his08,his09,his10,his11,his12) as
(
select 130669, 30, 30622, 30622, 0, 30622, 0, 10623, 10623, 10623, 10623, 10623, 10623, 10623 union all
select 130669, 40, 0, 10223, 0, 10223, 0, 0, 0, 0, 0, 0, 0, 0 union all
select 131008, 30, 10922, 10922, 10922, 10922, 10922, 10922, 0, 0, 0, 21023, 21023, 21023 union all
select 131008, 40, 0, 0, 0, 0, 0, 310523, 0, 0, 0, 0, 0, 0 -- union all
)
select
d.matri,
coalesce (
nullif(d.his01,0), nullif(d.his02,0), nullif(d.his03,0), nullif(d.his04,0), nullif(d.his05,0), nullif(d.his06,0),
nullif(d.his07,0), nullif(d.his08,0), nullif(d.his09,0), nullif(d.his10,0), nullif(d.his11,0), nullif(d.his12,0)
) as date_from,
coalesce(
nullif(d1.his01, 0), nullif(d1.his02, 0), nullif(d1.his03, 0), nullif(d1.his04, 0), nullif(d1.his05, 0), nullif(d1.his06, 0),
nullif(d1.his07, 0), nullif(d1.his08, 0), nullif(d1.his09, 0), nullif(d1.his10, 0), nullif(d1.his11, 0), nullif(d1.his12, 0)
) as date_to
from data d
join data d1 on d.matri = d1.matri and d.cohis = 30 and d1.cohis = 40
; |
Partager