Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Rufen Sie mehrere Spalten nach Datumsintervall gruppiert ab

Für mich sieht das so aus:

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' 
  

Mit anderen Worten, überprüfen Sie, ob der Tag scale_eventdate Spalte gehört zur 1. oder 2. Monatshälfte und Summe scale_weight entsprechend.