'Dynamically create PIVOT Columns without using PIVOT Function [duplicate]

Need help on this SQL query. It produces a Pivoted Hour Wise result of a production line of a work shift, at a particular date.

SELECT distinct Operations.OperationName,Lines.linename,
    SUM(CASE WHEN op_Time_From='07:00' THEN Production END) as [07:00],
    SUM(CASE WHEN op_Time_From='08:00' THEN Production END) as [08:00],
    SUM(CASE WHEN op_Time_From='09:00' THEN Production END) as [09:00],
    SUM(CASE WHEN op_Time_From='10:00' THEN Production END) as [10:00],
    SUM(CASE WHEN op_Time_From='11:00' THEN Production END) as [11:00],
    SUM(CASE WHEN op_Time_From='12:00' THEN Production END) as [12:00],
    SUM(CASE WHEN op_Time_From='14:00' THEN Production END) as [14:00],
    SUM(CASE WHEN op_Time_From='15:00' THEN Production END) as [15:00],
    SUM(CASE WHEN op_Time_From='16:00' THEN Production END) as [16:00],
    SUM(CASE WHEN op_Time_From='17:00' THEN Production END) as [17:00]
FROM Production
JOIN Lines on Lines.lineID=production.Line_FK_ID
JOIN Operations on Operations.opID=production.OP_FK_ID
JOIN [Shift] on [Shift].ShiftID=production.Shift_FK_ID
WHERE 
    ShiftID in (1)
    and op_date in ('2022-04-26')
    and Line_FK_ID in (1)
Group By  Operations.OperationName,Lines.linename

The Case When condition uses static time, I want to generate the time dynamically. Any ideas?



Sources

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

Source: Stack Overflow

Solution Source