我正在寻找从多个表中提取的查询。大多数都相当简单,我可以直接从表中提取一个值,但有一个表被转动,所以我想要的值取决于另一列中的值。
表格如下所示:
ID Condition Value
1 Stage1 6
2 Stage2 9
3 Stage3 5
4 Stage4 2
所以我想写一个查询,通过告诉表中哪个条件基本上“限定”我想要的值。
我的SQL示例:
Select Attribute1, Stage1Value, Stage2Value, Stage3Value
From attribute, stage
where attribute = project1
所以我不能只是拉“值”列,因为它需要知道查询中的哪个阶段。
我试图提取30列 - 其中13列属于此类别。感谢您提供的任何帮助。
答案 0 :(得分:2)
所以,你想要条件聚合:
select a.<col>,
sum(case when s.Condition = 'Stage1' then s.value else 0 end),
. . .
sum(case when s.Condition = 'Stage4' then s.value else 0 end)
from attribute a inner join
stage s
on s.<col> = a.<col>
group by a.<col>