条件发生时的多列情况

时间:2019-07-24 19:15:05

标签: sql-server

我需要捕获col1除以col3的美元金额。但是,计算取决于col2的1a或1b =带小数的col3。

例如,如果col2 1a在col3中有一个十进制输出,则它表示已使用的特定比率,我需要将col1除以该比率。如果col2 1b在col3中有输出,则表示使用了与1a不同的速率。 1a和1b每个Customer_ID不会在col3中同时包含小数。在我的查询中,仅在使用一个或另一个(1a或1b)时,我需要能够提取正确的数据。此特定列还具有其他我不需要的变量,它们不是1a或1b,因此尝试使用CASE WHEN语句。

For the below, I need the query to calculate 123/.25 where col2 (1a) = col3 (.25) but col3 = 0 for col2 1b
+------+------+------+
| Col1 | Col2 | Col3 |  
+------+------+------+
|  123 | 1a   |  .25 |  
|  456 | 1b   |    0 |
| -789 | 2a   |  .65 |
+------+------+------+


If the below is as follows, I would need it to calculate 456/.35 where col2 (1b) = col3 (.35) but col3 = 0 for col2 1a
+------+------+------+
| Col1 | Col2 | Col3 |  
+------+------+------+
|  123 | 1a   |    0 |  
|  456 | 1b   |  .35 |
| -789 | 2a   |  .65 |  
+------+------+------+

到目前为止,我已经尝试了类似以下的CASE WHEN语句:

    , CASE WHEN col2 = '1a' 
        AND col3 > 0
            THEN (col1/col3)
        WHEN col2 = '1b'
        AND col3 > 0
            THEN (col1/col3) 
      END 

任何建议将不胜感激!

0 个答案:

没有答案