我有两个表,#Test
并且#Control
,它们的列彼此相同,看起来如下所示:
#Test: #Control:
Name Component Price Name Component Price
A a 1.00 A a 7.00
A b 2.00 A a 8.00
A a 3.00 B a 9.00
B a 4.00 B d 10.00
B a 5.00 B d 11.00
B c 6.00
但是有更多的列和 和 的Name
组合Component
。
我想将它们每个聚合以获得Price
perName
和的总和Component
,但是我想要出现在任一列表中的所有组合的值。使用上面的示例表所需的输出如下所示:
#TestAgg: #ControlAgg:
Name Component SumPrice Name Component SumPrice
A a 4.00 A a 15.00
A b 2.00 A b 0.00
B a 9.00 B a 9.00
B c 6.00 B c 0.00
B d 0.00 B d 21.00
我怎样才能做到这一点?
对于单个表,以下工作:
SELECT Name
,Component
,sum(Price) as SumPrice
INTO #TestAgg
FROM #Test
GROUP BY rollup(Name,Component)
order by 1, SumPrice desc
但是,我无法弄清楚如何为仅存在于另一个表中的名称组件组合返回零。