代码之家  ›  专栏  ›  技术社区  ›  Sparkind

SQL-需要找到一种方法来检查成员是否已续订

  •  0
  • Sparkind  · 技术社区  · 7 年前

    所以,这可能很简单。我需要找到一种方法来检查某个计划的成员是否已续订其成员资格或让其过期,我需要生成一个未续订成员的简单列表。。。。然而,还有一些复杂的因素,因为我不能使用Excel,而且它只能是Crystal reports的一个步骤(尽管我已经在Excel中使用简单的Countifs和if公式解决了这个问题)

    现在来看问题。

    成员资格在表中的单独列中指定了开始/结束日期。很容易看出这一连续基准是否已过期。问题是,如果它们已续订,则会将其记录为单独的表条目,并通过对成员的单个引用链接。我还需要测试多项资质。

    因此,虽然我可以测试到期日期,但问题是我如何根据个人参考和资格名称对其余数据进行测试,然后检查其是否为“当前”。因此,这样做将使我能够测试成员资格是否因此在个别方面得到延续。

    如有任何方法建议,将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  0
  •   JohnHC    7 年前

    在不知道您拥有什么数据和对wazoo做出假设的情况下,尝试以下方法

    select distinct Member_id, 
           case 
             when exists (select 1 
                          from members m2 
                          where m2.member_id = m1.member_id
                          and (m2.expiry_date is null
                               or m2.expiry_date > '2018-01-25'))
               then 'Active'
             else 'Expired'
           end as mem_status
    from members m1
    

    什么 exists 查看该成员是否处于活动状态