Sql 如果账户在另一个账户的60天内开立,则计算

Sql 如果账户在另一个账户的60天内开立,则计算,sql,sql-server,Sql,Sql Server,我试图计算是否有会员在加入我们后60天内打开了产品。根据我目前拥有的代码,我显示没有人打开过产品,我知道这是不正确的,所以我一定是做错了什么。有什么想法吗 SELECT M.MEMBER_NBR, COUNT(CASE WHEN S.OPEN_DATE <= DATEADD(d, -60, l.open_date) THEN 1 ELSE NULL END) FROM LOAN AS L INNER JOIN APPLICATION AS A ON L.LOAN_NOTE_NBR = A

我试图计算是否有会员在加入我们后60天内打开了产品。根据我目前拥有的代码,我显示没有人打开过产品,我知道这是不正确的,所以我一定是做错了什么。有什么想法吗

SELECT M.MEMBER_NBR, COUNT(CASE WHEN S.OPEN_DATE <= DATEADD(d, -60, l.open_date) THEN 1 ELSE NULL END) 
FROM LOAN AS L
INNER JOIN APPLICATION AS A ON L.LOAN_NOTE_NBR = A.APLNUM 
INNER JOIN MEMBERSHIP AS M ON L.MEMBER_NBR=M.MEMBER_NBR
INNER JOIN SHARE AS S on M.MEMBER_NBR=S.MEMBER_NBR
WHERE l.open_date = M.open_date
GROUP BY M.MEMBER_NBR
ORDER BY COUNT(CASE WHEN S.OPEN_DATE <= DATEADD(d, -60, l.open_date) THEN 1 ELSE NULL END) DESC
所以在上面的例子中,他们在签署贷款后两周开了一个支票账户。所以对于输出,我希望它能显示出来

Member_Nbr   Open_ShareCount
1                   1

或者,如果他们开了一张支票和一张储蓄卡,就会说在Open_ShareCount下有2张,对数据的外观做了一些假设,并忽略了这个答案的应用程序表和成员表。根据需要进行调整

这是我使用的样本数据。。。

绿色高亮显示的行是不会出现在结果中的行,因为日期超出范围

询问

    select member_number, 
    count(distinct share) as accounts_opened
    from (
        select s.member_number 
        ,s.share
        --,s.open_date as share_open --kept for QA
        --,l.open_date as loan_open --kept for QA
        from share s
        join loan l on l.member_number = s.member_number
        where 1=1
        and s.open_date between l.open_date 
            and l.open_date + '1 day'::interval * 60
        )z
    group by 1
    order by 1

请提供样本数据、所需结果,并根据这些信息解释您想要做什么。
datediff(day,l.open_date,s.open_date)介于0和60之间
    select member_number, 
    count(distinct share) as accounts_opened
    from (
        select s.member_number 
        ,s.share
        --,s.open_date as share_open --kept for QA
        --,l.open_date as loan_open --kept for QA
        from share s
        join loan l on l.member_number = s.member_number
        where 1=1
        and s.open_date between l.open_date 
            and l.open_date + '1 day'::interval * 60
        )z
    group by 1
    order by 1