2015-04-02 101 views
1

根据以下条件和场景,我很难更新表列。使用第三个表中的数据更新第三个表的条件

条件表:

EmpID Consulting-A Consulting-B Consulting-C 
A1  0    10    20 
A2  50    30    0 
A3  0    0    70 

数据表:

EmpID Consulting-A Consulting-B Consulting-C 
A1  10000   20000   30000 
A2  0    35000   15000 
A3  0    8000   0 

输入表:

EmpID [Total Valid Consulting] 
A1  20000 + 30000 = 50000   
A2  0 + 35000 = 35000    
A3  0    

在一天结束的时候,我想有具有的Input TableTotal Valid Consulting当它在0中的值大于零时,为Data Table的总和。

例如,对于Total Valid ConsultingEmpId A1Consulting-B + Consulting-CCondition TableEmpID A1(从Data Table),因为仅具有Consulting-B和大于零的Consulting-C值。

所以,我只想添加其他表中大于零的值的列数据。有没有办法在SQL Server中这样做?这是我的更新声明,我有问题想出来。

感谢任何帮助和建议。谢谢!

回答

0

您可以使用CASE声明

INSERT INTO Input 
    SELECT EmpID, 
      CASE WHEN C.[Consulting-A] > 0 THEN CT.[Consulting-A] ELSE 0 END + 
      CASE WHEN C.[Consulting-B] > 0 THEN CT.[Consulting-B] ELSE 0 END + 
      CASE WHEN C.[Consulting-C] > 0 THEN CT.[Consulting-C] ELSE 0 END AS f 
    FROM Condition AS C 
    INNER JOIN Data AS CT ON C.EmpID = CT.EmpID 
+1

谢谢!这项工作。 – Ken 2015-04-02 13:11:17

+0

很高兴我能帮到你。如果有帮助,您可以将其标记为答案。 – sqluser 2015-04-02 14:05:58

相关问题