代码之家  ›  专栏  ›  技术社区  ›  A.Papa

组中的一个ID满足所有相同ID的重复值条件,如果

  •  1
  • A.Papa  · 技术社区  · 8 年前

    我希望在基于条件的情况下使用case。但是,如果相同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 回复  |  直到 8 年前
        1
  •  4
  •   Serkan Arslan    8 年前

    你可以试试这个。

    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