我根据以下条件和方案更新表列时遇到了一些困难。
条件表:
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 Table
Total Valid Consulting
在Data Table
中的值大于零时,其总和为Condition Table
。< / p>
例如,Total Valid Consulting
的{{1}}仅为EmpId A1
(来自Consulting-B + Consulting-C
),因为Data Table
Condition Table
只有EmpID A1
{ {1}}和Consulting-B
值大于零。
所以我想只添加具有来自另一个表的值大于零的列数据。有没有办法在SQL Server中这样做?这是我的更新声明,我有问题想出来。
感谢任何帮助和建议。谢谢!
答案 0 :(得分: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