Đối với tôi, nó trông như thế này:
select
sum(case when b.materialid = 1 and
to_number(to_char(b.scale_eventdate, 'dd')) between 1 and 15 then
b.scale_weight
end) mtrl1,
--
sum(case when b.materialid = 2 and
to_number(to_char(b.scale_eventdate, 'dd')) between 16 and 31 then
b.scale_weight
end) mtrl2
from datalog_tab b
where to_char(b.scale_eventdate, 'yyyymm') = '202010'
Nói cách khác, hãy kiểm tra xem ngày của scale_eventdate
cột thuộc về nửa thứ nhất hoặc thứ hai của tháng và tổng scale_weight
theo đó.