Think like the best software engineer and give e the code for : I have been struggle with this SQL assignment and need some help. The query needs to pull out all time equipment is spent in its "operating" state based on shift times. Shifts start on Monday at 4 am and end on Tuesday 1 : 3 0 am . , then start again at 4 am , this pattern goes till 1 : 3 0 am on Friday. Friday - Sunday, shifts start at 4 am and end at 2 : 3 0 pm each day. Below is the query i have but the problem with it is that the "operating" time that is pulled out for each equipment ID is a very large negative number. For example the "Days _ in _ State" column for the "Saw" equipment ID returned - 1 2 4 1 5 3 6 7 . 4 4 days. SELECT Equipment _ ID , STATE, Equipment _ DESC, SUM ( ROUND ( ( COMPLETE _ DATE - START _ DATE ) , 2 ) ) AS DAYS _ IN _ STATE, SUM ( ROUND ( ( COMPLETE _ DATE - START _ DATE ) * 2 4 , 2 ) ) AS HOURS _ IN _ STATE FROM ( SELECT A . Device _ id AS Equipment _ ID , A . State, A . Description AS Equipment _ DESC, CASE WHEN A . UPDATED _ DATE > TO _ DATE ( ' 0 7 - APR - 2 5 ' , ' DD - MON - YY ' ) THEN A . UPDATED _ DATE ELSE TO _ DATE ( ' 0 7 - APR - 2 5 ' , ' DD - MON - YY ' ) END AS START _ DATE, CASE WHEN B . UPDATED _ DATE < TO _ DATE ( ' 1 4 - APR - 2 5 ' , ' DD - MON - YY ' ) THEN B . UPDATED _ DATE ELSE TO _ DATE ( ' 1 4 - APR - 2 5 ' , ' DD - MON - YY ' ) END AS COMPLETE _ DATE FROM Equipment _ HISTORY A LEFT OUTER JOIN Equipment _ HISTORY B ON A . Recno = B . Recno + 1 WHERE A . STATE = ANY ( ' Operating ' ) AND A . Device _ ID = ANY ( ' Press ' , 'Mill', 'Furnace','Saw' ) and A . Description NOT LIKE ' % Test % 'and A . Description NOT LIKE ' % Second _ Floor % ' ) MAIN WHERE ( ( TO _ CHAR ( START _ DATE , ' DY ' , ' NLS _ DATE _ LANGUAGE = ENGLISH' ) IN ( ' MON ' , 'TUE', 'WED', 'THU' ) AND ( TO _ CHAR ( COMPLETE _ DATE, ' HH 2 4 :MI ' ) BETWEEN ' 0 4 : 0 0 ' AND ' 2 3 : 5 9 ' OR TO _ CHAR ( COMPLETE _ DATE, ' HH 2 4 :MI ' ) BETWEEN ' 0 0 : 0 0 ' AND ' 0 1 : 3 0 ' ) ) OR ( TO _ CHAR ( COMPLETE _ DATE, ' DY ' , ' NLS _ DATE _ LANGUAGE = ENGLISH' ) IN ( ' FRI ' , 'SAT', 'SUN' ) AND TO _ CHAR ( COMPLETE _ DATE, ' HH 2 4 :MI ' ) BETWEEN ' 0 4 : 0 0 ' AND ' 1 4 : 3 0 ' ) ) GROUP BY Equipment _ ID , STATE,Equipment _ DESC; give step by step answer with explanation and give conclusion
Question:
Think like the best software engineer and give e the code for : I have been struggle with this SQL assignment and need some help. The query needs to pull out all time equipment is spent in its "operating" state based on shift times. Shifts start on Monday at 4 am and end on Tuesday 1 : 3 0 am . , then start again at 4 am , this pattern goes till 1 : 3 0 am on Friday. Friday - Sunday, shifts start at 4 am and end at 2 : 3 0 pm each day. Below is the query i have but the problem with it is that the "operating" time that is pulled out for each equipment ID is a very large negative number. For example the "Days _ in _ State" column for the "Saw" equipment ID returned - 1 2 4 1 5 3 6 7 . 4 4 days. SELECT Equipment _ ID , STATE, Equipment _ DESC, SUM ( ROUND ( ( COMPLETE _ DATE - START _ DATE ) , 2 ) ) AS DAYS _ IN _ STATE, SUM ( ROUND ( ( COMPLETE _ DATE - START _ DATE ) * 2 4 , 2 ) ) AS HOURS _ IN _ STATE FROM ( SELECT A . Device _ id AS Equipment _ ID , A . State, A . Description AS Equipment _ DESC, CASE WHEN A . UPDATED _ DATE > TO _ DATE ( ' 0 7 - APR - 2 5 ' , ' DD - MON - YY ' ) THEN A . UPDATED _ DATE ELSE TO _ DATE ( ' 0 7 - APR - 2 5 ' , ' DD - MON - YY ' ) END AS START _ DATE, CASE WHEN B . UPDATED _ DATE < TO _ DATE ( ' 1 4 - APR - 2 5 ' , ' DD - MON - YY ' ) THEN B . UPDATED _ DATE ELSE TO _ DATE ( ' 1 4 - APR - 2 5 ' , ' DD - MON - YY ' ) END AS COMPLETE _ DATE FROM Equipment _ HISTORY A LEFT OUTER JOIN Equipment _ HISTORY B ON A . Recno = B . Recno + 1 WHERE A . STATE = ANY ( ' Operating ' ) AND A . Device _ ID = ANY ( ' Press ' , 'Mill', 'Furnace','Saw' ) and A . Description NOT LIKE ' % Test % 'and A . Description NOT LIKE ' % Second _ Floor % ' ) MAIN WHERE ( ( TO _ CHAR ( START _ DATE , ' DY ' , ' NLS _ DATE _ LANGUAGE = ENGLISH' ) IN ( ' MON ' , 'TUE', 'WED', 'THU' ) AND ( TO _ CHAR ( COMPLETE _ DATE, ' HH 2 4 :MI ' ) BETWEEN ' 0 4 : 0 0 ' AND ' 2 3 : 5 9 ' OR TO _ CHAR ( COMPLETE _ DATE, ' HH 2 4 :MI ' ) BETWEEN ' 0 0 : 0 0 ' AND ' 0 1 : 3 0 ' ) ) OR ( TO _ CHAR ( COMPLETE _ DATE, ' DY ' , ' NLS _ DATE _ LANGUAGE = ENGLISH' ) IN ( ' FRI ' , 'SAT', 'SUN' ) AND TO _ CHAR ( COMPLETE _ DATE, ' HH 2 4 :MI ' ) BETWEEN ' 0 4 : 0 0 ' AND ' 1 4 : 3 0 ' ) ) GROUP BY Equipment _ ID , STATE,Equipment _ DESC; give step by step answer with explanation and give conclusion
Asked by: Test User 100081
Created at: 2025-04-28 10:21:48
Final Answer:
📢 Instructions:
- Ask anything relatd to above question only.
- For new Question goto :
VIPSolutions