sql >> Database >  >> RDS >> Oracle

ophalen van meerdere kolommen groeperen op datum intervall

Voor mij ziet het er zo uit:

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' 
  

Met andere woorden, controleer of de dag van scale_eventdate kolom hoort bij 1e of 2e helft van de maand en som scale_weight dienovereenkomstig.



  1. ScaleGrid DigitalOcean-ondersteuning voor MySQL, PostgreSQL en Redis™ nu beschikbaar

  2. Gebruik meerdere conflict_targets in ON CONFLICT-clausule

  3. Geparametriseerde Query voor MySQL met C#

  4. Een lijst maken van alle opgeslagen procedures in Oracle Database