SQL-пробелы в данных - дата регистрации и дата исключения 'Active_members' - PullRequest
0 голосов
/ 03 февраля 2012

В основном мне нужен самый практичный способ найти список активных членов.

Вот пример набора данных, который я использую

client    policy holder id   suffix      payor_id    enroll date    disenroll date
A04      GRH130007068       e       GRH0000013000   2009-01-01      0       
A04      GRH130007651       e       GRH0000013000   2010-10-01    2010-10-31
A04      GRH130007887       2       GRH0000013000   2010-10-01    2011-01-31        
A04      GRH130008979       e       GRH0000013000   2009-01-01      0       
A04      GRH130009628       e       GRH0000013000   2006-01-01      0

Теперь 0, чтов дате прекращения участия являются нулевыми значениями.Поэтому я запрашиваю, используя этот синтаксис

SELECT * FROM big_pink. EnrollmentHistory, где Sub_Client_Cd = 'B01' и Policy_Holder_ID = 'BIS355702848' и Suffix_ID = 'e';

И этомои результаты

CLIENT     PHID            SID          PAYORID    ENROLL DATE        DISENROLL DATE
B01     BIS355702848        e       BIS110990       2003-09-01            2010-01-31            
B01     BIS355702848        e       BIS110990       2010-02-01            2011-06-30    
B01     BIS355702848        e       BIS110990       2011-07-01            2011-09-18            
B01     BIS355702848        e       BIS110990       2011-09-19              0

Теперь я хочу убедиться, что каждый участник активен.Поэтому я хочу, чтобы они были выделены в один экземпляр этих требований со счетом 4 соответственно.однако мне нужна самая ранняя дата зачисления и самая поздняя дата прекращения зачисления .... Позже я объединю это с другой таблицей, чтобы получить скользящую стоимость на члена в месяц.

есть идеи?

1 Ответ

0 голосов
/ 03 февраля 2012
SELECT  Client, min( Enroll_date) [Registered date], 
        CASE WHEN (SELECT 1 FROM big_pink.EnrollmentHistory  WHERE  Disenroll_Date IS NULL) =  1
        THEN NULL --or whatever value you wish
        ELSE max (Disenroll_Date)
        END [End date], COUNT(*) as n
FROM    big_pink.EnrollmentHistory 
WHERE   Sub_Client_Cd = 'B01' 
AND     Policy_Holder_ID = 'BIS355702848' and Suffix_ID = 'e';
GROUP BY Client

Это даст вам примерно то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...