对于组中的一个ID,CASE WHEN,满足所有相同ID条件的重复值

时间:2018-01-31 11:11:11

标签: sql sql-server case conditional-statements

我想根据条件使用案例。但是,如果满足相同ID的条件至少一次,那么我想对具有特定ID的所有行重复1。

目前我正在使用以下内容:

Select  case when REPORTING_DATE  = Convert(datetime, '2016-11-30')  then 1 else 0  end as November 
        , Reporting_Date
        , ID
from TableA
where 1=1

导致

November    Reporting_Date  ID
  0        30-9-2016        A
  0        31-10-2016       A
  1        30-11-2016       A

但是我想为所有A ID重复1

 November   Reporting_Date      ID
      1        30-9-2016        A
      1        31-10-2016       A
      1        30-11-2016       A
      0        30-09-2016       B  
      0        31-10-2016       B
      0        30-09-2016       C 

任何想法,我试过分区但它似乎没有工作...... 提前谢谢。

1 个答案:

答案 0 :(得分:4)

你可以试试这个。

Select  MAX(case when REPORTING_DATE  = Convert(datetime, '2016-11-30')  then 1 else 0  end) OVER(PARTITION BY ID) as November 
        , Reporting_Date
        , ID
from TableA
where 1=1