A way to count records open (but not yet closed) per dynamic period

Hello community, 


I have data that exists as such: 



12345, 01/01/2020, 02/15/2020

12346, 01/15/2020, null 

12347, 02/01/2020, 3/31/2020 


And I have the same data pivoted as well: 



98765, 12345, Opened, 01/01/2020 

98766, 12345, Closed, 02/15/2020


I am trying to produce a report that would show the records that were open (had opened, but not yet closed), grouped by period, hopefully where the period remains dynamic so my report viewer could group by month, quarter, year on the fly as they wish.


Let's say my report consumer wants to see total records that were open per month. A record opened in January but closed in mid-March would count in each of January, Feb and March's numbers. I assume this means that I have to explode my data in some way with an ETL process (I prefer to use a DataFlow) but I cannot currently wrap my brain around how to accomplish this. I'm feeling a bit dense and would love any pointers or guidance. 


Thank you very much in advance. 

Best Answer

  • GrantSmith
    GrantSmith Indiana 🥷
    Answer ✓

    Hi @texas ,


    You could utilize the Date Dimension dataset provided by Domo and utilize a join to explode your dataset to populate for each day. Something like (this is untested back of the napkin):


    select *
    from `dates` d
    join `my_table` t on d.`date` BETWEEN t.open_date and t.close_date

    This will list each record ID for each date where it's within the open and close dates so you might need to be careful of duplicates in your counts / sums.

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**


  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🔴

    @texas , @GrantSmith  nailed the answer on the head.


    Only thing you'd want to do is fill cases where the START or END date are NULL.  (usually for EndDate I'll set it equal to today).


    If you don't, you'll eliminate all open projects.


    Jae Wilson
    Check out my 🎥 Domo Training YouTube Channel 👨‍💻

    **Say "Thanks" by clicking the ❤️ in the post that helped you.
    **Please mark the post that solves your problem by clicking on "Accept as Solution"