我有一张这样的表
pulseid | RunID | Name | Value |<br>
1 | 1 | api | 0 |<br>
2 | 1 | api | 0 |<br>
3 | 1 | api | 0 |<br>
pulseid | RunID | Name | Value |<br>
1 | 1 | rot | 900 |<br>
2 | 1 | rot | 10 |<br>
3 | 1 | rot | 35 |<br>
PulseId是两个表之间的公共字段。我想要一个会给我一个结果的脚本
pulseid | Rot | API | Value |<br>
1 | 900 | 0 | 900 |<br>
2 | 10 | 0 | 10 |<br>
3 | 35 | 0 | 35 |<br>
非常感谢任何帮助。谢谢。
答案 0 :(得分:2)
你想要的是PIVOT
。只需两列,使用UNION
和GROUP BY
进行模拟就更容易了:
SELECT
pulseid,
SUM(CASE WHEN Name = 'rot' THEN Value ELSE 0 END) Rot,
SUM(CASE WHEN Name = 'API' THEN Value ELSE 0 END) API
FROM {tablename}
GROUP BY pulseid
答案 1 :(得分:1)
假设:
api
rot
api
和rot
,它会提供正确的值,但我不确定这是否是您想要的。以下是查询:
select
api.pulseid,
rot.Value as Rot,
api.Value as API,
rot.Value + api.Value as [Value]
from api
join rot on rot.pulseid = api.pulseid
答案 2 :(得分:1)
我认为这些问题是由于缺乏有关该问题的信息而导致的,就好像您自己还没有尝试过一样。我从字面上理解了问题,可以使用以下SQL生成您请求的结果:
SELECT
Table_1.PulseID,
Table_2.Value "rot",
Table_1.Value "api",
Table_2.Value
FROM
Table_1
JOIN
Table_2 ON
Table_2.PulseID = Table_1.PulseID
AND Table_2.Name = 'rot'