我有一个如下数据集:
BaseID| SecondaryTypeID| Value
------------------------------
1 5 1
1 5 3
1 5 8
我想得到的是:
BaseID| SecondaryTypeID| Value
------------------------------
1 5 12
现在,我可以使用以下内容返回该数据集:
select BaseID,
SecondaryTypeID,
(select sum(Value) from TableA) as SummedValue
from TableA
group by BaseID, SecondaryTypeID
但是,作为合并查询的一部分,我无法做到这一点,内部选择会使合并中出现错误,如下所示:
由于提示,查询处理器无法生成查询计划 在此查询中定义。重新提交查询而不指定任何提示 并且不使用SET FORCEPLAN。
对于如何解决这个问题的任何想法都会感激不尽!
答案 0 :(得分:3)
为什么要使用子查询?只是做:
select BaseID, SecondaryTypeID, sum(Value) as SummedValue
from TableA
group by BaseID, SecondaryTypeID;
如果结果集中有多行并想要总和,则使用窗口函数:
select BaseID, SecondaryTypeID,
sum(sum(Value)) over () as SummedValue
from TableA
group by BaseID, SecondaryTypeID;
这是您的查询真正所要做的事情。我怀疑这是你想要的。