Не совсем понятно, откуда вы берете час. Но для разбиения на столбцы я бы использовал операторы Case следующим образом. Я не знаю ваши расчеты, но вместо t.Channel, введите вашу формулу. Если это необходимо суммировать, переключитесь с MAX на SUM. Замените t.Hour на таблицу, где вы получаете часы.
Если это не имеет смысла, опубликуйте свой запрос на объединение, и я приспособлюсь к случаям использования.
SELECT
t.Hour
MAX(CASE WHEN t.System=1 THEN t.Channel END) T1Channel,
MAX(CASE WHEN t.System=1 THEN t.Board END) T1Board,
MAX(CASE WHEN t.System=2 THEN t.Channel END) T2Channel,
MAX(CASE WHEN t.System=2 THEN t.Board END) T2Board,
MAX(CASE WHEN t.System=3 THEN t.Channel END) T3Channel,
MAX(CASE WHEN t.System=3 THEN t.Board END) T3Board
FROM PDWPeriod t
GROUP BY
t.Hour
Новый запрос на основе вашего:
SELECT DATEPART(hh, TSTAMP) AS Hour,
COUNT(CASE WHEN System=1 THEN CHANNEL END) Processed1,
max(CASE WHEN System=1 THEN [USED] END)as MaxUsed1,
COUNT(CASE WHEN System=2 THEN CHANNEL END) Processed2,
max(CASE WHEN System=2 THEN [USED] END)as MaxUsed2,
COUNT(CASE WHEN System=3 THEN CHANNEL END) Processed3,
max(CASE WHEN System=3 THEN [USED] END)as MaxUsed3,
COUNT(CASE WHEN System=4 THEN CHANNEL END) Processed4,
max(CASE WHEN System=4 THEN [USED] END)as MaxUsed4
FROM [PINELLASLAB].[dbo].[TelematicPhysicalLines]
WHERE TSTAMP >= '2019-02-27' AND TSTAMP < '2019-02-28'
AND STATUS <> 'free'
GROUP BY DATEPART(dd, TSTAMP), DATEPART(hour, TSTAMP)