我有一个22列的表格设置,具有以下表格结构(请参见下面的图片/表格链接):
表中的最后一列是我创建的空白列,其欧洲分配名称为“ EuropeA”。我希望仅在欧洲范围内的国家/地区填充此列。
因此,使用上面的示例,对于第一行(端口号= 1),EuropeanA = Country1A(35%)仅是因为只有德国是欧洲人(显然中国和墨西哥不是)。 对于第3行(端口号= 3),因为所有国家/地区都位于欧洲,所以EuropeA =所有Country1A-3A的总和。
得出“欧洲”国家/地区的列表非常容易-我刚刚创建了一个查询,该查询从2-4列中拉出了所有不同的国家,然后创建了仅包含欧洲国家的列表。
但是,我不知道如何编写程序来计算列表中出现在2-4列中的那些国家的5-7列的总和。
作为背景-我正在使用SQL Server2014。我们将提供任何帮助。谢谢你们!
答案 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