如何在sql server中的表中添加一个总列

时间:2018-01-19 18:15:10

标签: sql-server

我正在尝试将我的列命名为目标,其中measured_component等于特定条件并将其添加到我的表但是遇到了麻烦。最后,我想为我的当前表添加4个新行,其中所有列都为null,除了time_value,它将是基于条件的每个总数的月份。

我正在使用以下查询。

select sum(TARGET) as TARGET_TOTAL
from REF_targets
where MEASURED_COMPONENT ='dispatch' 
    or MEASURED_COMPONENT='acknoweledge' 
    or MEASURED_COMPONENT= 'DRIVE' 
    or MEASURED_COMPONENT= 'ENROUTE'
group by TIME_VALUE

当我对条件进行分组时,我的总和会得到一个疯狂的数字,但如果我创建单独的查询,我会获得正确的总数。

select time_value
     , sum(TARGET) as TARGET_TOTAL
from REF_targets
where MEASURED_COMPONENT ='dispatch' 
group by TIME_VALUE

我无法使用此查询选择所有内容,因为我不断收到错误消息,说我需要将所有列添加到组中,最终为我提供了一个镜像,表示我已经为目标创建了一个新的目标列。

请帮忙,

谢谢!

1 个答案:

答案 0 :(得分:2)

由于您没有在GROUP BY中放置MEASURED_COMPONENT,因此您获得的数字很大。这应该为每个MEASURED_COMPONENT提供总和。

select TIME_VALUES, MEASURED_COMPONENT, sum(TARGET) as TARGET_TOTAL
from REF_targets
where MEASURED_COMPONENT ='dispatch' 
    or MEASURED_COMPONENT='acknoweledge' 
    or MEASURED_COMPONENT= 'DRIVE' 
    or MEASURED_COMPONENT= 'ENROUTE'
group by TIME_VALUES, MEASURED_COMPONENT