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

时间:2018-01-25 10:56:36

标签: sql crystal-reports

所以,这可能很简单。我需要找到一种方法来检查一个计划的成员是否已更新其成员资格或让它过期,我需要生成一个简单的列表,列出那些没有更新的人....但是有一些复杂的因素,因为我不能使用Excel,它只能是Crystal报表的一个步骤(尽管我使用简单的Countifs和公式解决了Excel中的问题)

现在出现问题。

成员资格已在表格的单独列中指定了开始/结束日期。很容易看出这是否已连续过期。问题在于,如果它们已更新,则会将其记录为由个人引用链接到该成员的单独表条目。我还需要测试多种资格。

因此,虽然我可以测试到期日期,但问题是我如何根据个人参考和资格名称对其余数据进行测试,然后检查这是否为“当前”。这样做可以让我测试会员资格是否因此而在某条线路上更新。

任何关于方法的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

在不知道你拥有什么数据并做出假设的情况下,尝试一下这些行

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的作用是查看该成员是否具有活动状态