1 回答

TA貢獻1775條經驗 獲得超11個贊
目前還不清楚你從哪里得到時間。但是為了拆分成列,我會使用如下的 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)
- 1 回答
- 0 關注
- 100 瀏覽
添加回答
舉報