1 回答
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
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 关注
- 77 浏览
添加回答
举报