加入,CASE和运营

时间:2015-05-20 21:09:50

标签: sql join case

我如何在SQL中编写此公式?

IF ((TableA.Col1-TableA.Col2-TableA.Col3)-(TableB.Col1*TableB.Col2))<(TableB.Col1*0.10) 
THEN TableA.Col4-30, 
ELSE TableA.Col4

我尝试过使用

SELECT 
FROM TableA 
INNER JOIN TableB 
ON (TableA.Col1-TableA.Col2-TableA.Col3)-(TableB.Col1*TableB.Col2)<(TableB.Col1*0.1‌​0)

然后我迷路了。

我想将TableA.Col4减少30(所以如果TableA.Col4为50,则结果为20)。

1 个答案:

答案 0 :(得分:0)

我们错过了tableA和tableB之间的关系。如果存在某种一对一主键,请将其用于&#39; pk&#39;在下面的查询中

SELECT 
case
when (TableA.Col1-TableA.Col2-TableA.Col3)-(TableB.Col1*TableB.Col2)<(TableB.Col1*0.1‌​0) 
then TableA.Col4-30 
else TableA.Col4 
end
FROM TableA 
JOIN TableB ON TableA.pk=TableB.pk