为了账号安全,请及时绑定邮箱和手机立即绑定

SQL 我可以从两个查询中得到一个结果表,以便它们对齐不同列中的数据吗

SQL 我可以从两个查询中得到一个结果表,以便它们对齐不同列中的数据吗

C#
慕码人8056858 2022-11-13 17:27:39
我有一个包含 9 列的 SQL 表:TSTAMP  SYSTEM  MODE    BOARD   CHANNEL USED    TOTAL   BOARDID STATUS“SYSTEM”包含 1 - 3 的值。第一个查询将查找 System matching 1 和 Channel count 以及 Used max 和 Status <> free。然后再次进行系统匹配 2 等然后再次为系统匹配 3我想(这是按小时使用(24 小时格式))按列排列的数据,第 1 列中的 24 小时按行递减。我知道我可以单独执行每个查询,但对 SQL 不熟悉,不确定使用什么命令使结果表按照我喜欢的方式排列。我尝试的结果基本上是这样的:Telematic 1 Hour    Processed   MaxUsed Telematic 2 Hour    Processed   MaxUsed Telmatic 3  Hour    Processed   MaxUsed    1   10  585 17  2   10  583 16  3   10  584 15    1    4    8  1  2    4   14  2  3    4    8  1  抱歉绕圈。我可以使用 UNION 但它只会创建 4 列。不是我要找的 12。
查看完整描述

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) 


查看完整回答
反对 回复 2022-11-13
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信