Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Get data where id with status on all specified dates

Have a fact table joined with dimension tables to pull out specific information.
I want to pull out id’s where the status = running and they must have the running status between several dates.

  • If between the dates specified, the status changes to other than "running" that campaign is not counted for in the result.

I have an idea of how to approach it, but i don’t think my logic and syntax is exactly correct. As I think the query below would pull data for 12345 which is not intended.

iddate id status
06-09 12345 running
06-10 12345 running
06-11 12345 ended
06-09 98765 running
06-10 98765 running
06-11 98765 running

The result expected should only show information for id 98765

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Current SQL

SELECT
*
From....
Where status='running' 
AND iddate BETWEEN DATE('2022-06-09') AND DATE('2022-06-11')
Group by 1,2,3

I believe I am likely missing a "NOT" condition somewhere to further filter out the dates.
Or the other thought is that id must have running between those dates, however, I am not sure how to apply that logic and its syntax. Any help would be appreciated.

>Solution :

Instead of selecting those that had status = 'running', you could filter out those that don’t have status = 'running', in the specified time frame.

SELECT DISTINCT id 
FROM tab
WHERE iddate BETWEEN DATE('2022-06-09') AND DATE('2022-06-11')
  AND id NOT IN (SELECT id 
                 FROM tab 
                 WHERE NOT status = 'running')

Check the demo here.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading