'how to return a specific set of data from multiple columns in a database in sql

I am new to sql and this is my first ever question. I am working with a sample database that I want to extract specific information from to display as a dashboard. The issue is that I can do this partially but I cannot seem to figure it out properly.

``SELECT 
S_date as date,
p_time as time,
process_id as process, 
sc_gun as scannumb, 
sum(line_qty) as linetotal,
sum(area_qty) as areatotal

FROM dbfile6
WHERE 
  process_id in('0010','0020','0030')
and sc_gun in = ('10','20','30','40','50')
and s_date = curdate() - 1 and p_time between '22:00:00' and '23:59:59'
or s_date = curdate() and p_time between '00:00:00' and '06:00:00'
GROUP BY p_time, s_date, process_id, sc_gun
ORDER BY s_date, process_id

What do I want to display? I can do partially where I want it to work to yesterdays date (s_date) recurring but I want this to only happen Monday to Friday, skipping the weekend so when we are on Monday, it looks at Fridays data from the database.

I want to show the time as a range, a night range. The range is 20:00:00 - 06:00:00. The range is tricky as it crosses over to the next day, this could work for Monday to Thursday but not Friday as there is no working weekend so what would I do here? In addition to this, I can sum up the values successfully and display it as averages for each process but then once I add the time in, it displays each result individually.

The table below is what it looks like in the database, however as mentioned earlier, the desired result is for each process to have the line_qty and area_qty summed up by time range and a day and night cycle.

s_date p_time process_id sc_gun line_qty area_qty
04/05/2022 04:49:52 0010 10 2 12
03/05/2022 11:50:00 0010 10 5 14
03/05/2022 19:50:00 0010 10 7 16
03/05/2022 13:50:00 0020 20 4 6
03/05/2022 19:50:00 0010 10 7 16
sql


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source