2014-09-18 119 views
0

我有以下查询:如何将一个总列添加到表中?

SELECT * FROM [DSPCONTENT01].[dbo].[zWMGWEEKARRIVAL] 
WHERE 
[ARRIVED DATE] = 'WEEKLY TOTAL' OR [ARRIVED DATE] = 'PRIOR WEEK' OR [ARRIVED DATE] = '12 WEEK AVERAGE' 

它显示此:

enter image description here

有什么办法以添加另一列或从它创建另一个表,其中它横跨加总?

例子:

ARRIVED DATE  TOTAL 

WEEKLY TOTAL  12000 
PRIOR WEEK  13654 
12 WEEK AVERAGE 10094 
+2

你没有指定一个RDBMS,而只是添加列起来,类似于:[Theall] + [TheallUC] + [171] + ... + [OSB] AS [TOTAL] – LittleBobbyTables 2014-09-18 19:01:15

+0

微软SQL服务器 – SearchForKnowledge 2014-09-18 19:01:58

回答

1

只需使用+但要小心NULL S:

SELECT [ARRIVED DATE], 
     (coalesce(col1, 0) + coalesce(col2, 0) + coalesce(col3, 0), . . . 
     ) as Total 
FROM [DSPCONTENT01].[dbo].[zWMGWEEKARRIVAL] 
WHERE [ARRIVED DATE] IN ('WEEKLY TOTAL', 'PRIOR WEEK', '12 WEEK AVERAGE'); 

我不能轻松地阅读你的列名,但你应该包括真实姓名。

+0

WOW ..多么简单! :) – SearchForKnowledge 2014-09-18 19:06:01

1

如果你想把总和作为数据库中的一列,你可以添加一个所谓的computed column。你基本上只是添加一个查询作为列。您可以在计算列规范下的表设计器中的SSMS内或链接中描述的alter table语句执行此操作。

ALTER TABLE zWMGWEEKARRIVAL 
ADD Total AS (Theall + TheallUC + ....rest of columns) 
相关问题