如何基于其他两组列的查找计算列中的总和?

时间:2018-07-27 01:50:18

标签: sql-server sql-server-2014

我有一个22列的表格设置,具有以下表格结构(请参见下面的图片/表格链接):

表中的最后一列是我创建的空白列,其欧洲分配名称为“ EuropeA”。我希望仅在欧洲范围内的国家/地区填充此列。

因此,使用上面的示例,对于第一行(端口号= 1),EuropeanA = Country1A(35%)仅是因为只有德国是欧洲人(显然中国和墨西哥不是)。 对于第3行(端口号= 3),因为所有国家/地区都位于欧洲,所以EuropeA =所有Country1A-3A的总和。

得出“欧洲”国家/地区的列表非常容易-我刚刚创建了一个查询,该查询从2-4列中拉出了所有不同的国家,然后创建了仅包含欧洲国家的列表。

但是,我不知道如何编写程序来计算列表中出现在2-4列中的那些国家的5-7列的总和。

作为背景-我正在使用SQL Server2014。我们将提供任何帮助。谢谢你们!

CLICK FOR TABLE EXAMPLE

1 个答案:

答案 0 :(得分:0)

-准备欧洲pi国家的清单 声明@Europe表(名称nvarchar(20)) 插入@欧洲 VALUES('德国'),('法国'),('葡萄牙'),('意大利'),('希腊'),('挪威')

-查看现有数据

选择*来自TempData

-更新EuropeA列

更新TempData SET EuropeA =总计 从(     SELECT PortNum,SUM(国家A)总计     从(         从TempData中选择端口号,国家1国家,国家1A国家         全联盟         从TempData中选择端口号,Country2,Country2A         全联盟         从TempData中选择端口号,Country3,Country3A     )T     国家/地区(从@Europe选择名称)     由T.Portnum分组 )T WHERE T.Portnum = TempData.Portnum

-更新后获取结果

选择*来自TempData