LOGIC ON MySQL, DATE RANGES, вставка элементов в пустые поля - PullRequest
1 голос
/ 08 февраля 2012

Хорошо, поэтому, начиная с выбранного диапазона дат, у меня есть вопрос относительно логики того, как это должно получиться. Я должен проверить, что все члены моей таблицы enrollmenthistory активны в течение определенного месяца. Я должен иметь дело с полями subclientcode, policyholderid и suffixid

тогда у меня есть даты зачисления и исключения так мои поля выглядят так

client phid sid enroll date disenroll date

Первое, что я должен проверить, это убедиться, что в этой группе есть активные участники (scc + phid + sid)

Я хочу разбить его на месяц. поэтому я бы использовал date_format(enroll_date '%Y %m), чтобы отделить год и дату.

что-то вроде этого может быть

SELECT sub client code, phid, sid, date_formate(enroll date '%Y %m'), 
date_formate(disenroll date '%Y %m')
FROM enrollmenthistory
WHERE sub client code = 'B01' and enroll_date is < 2010-02-01 and 
disenroll_date is null or disenroll_date > 2010-01-01

Если кто-то может помочь с этим синтаксисом, я использую mySQL 5.5, и, возможно, моя логика тоже неверна.

Я должен принять во внимание, что существует активный участник в течение одного месяца, но он может не быть активным в следующем месяце и может снова стать активным в следующем месяце. Как страховка для членов профсоюза. Или участник может быть активным только часть месяца.

любая помощь или вопросы, чтобы уточнить, будет принята с благодарностью.

Заранее спасибо.

ТАКЖЕ ПРОДОЛЖАЙТЕ НАМ

Я использовал этот запрос раньше, но min и max не будут работать из-за конкретных диапазонов дат, которые мне нужно иметь в виду.

SELECT  sub_client_cd, min( Enroll_date), max(Disenroll_Date), COUNT(*) as n 
FROM    big_pink.enrollment_test 
WHERE   Sub_Client_Cd = 'B01'  
AND     Policy_Holder_ID = 'BIS355702848' and Suffix_ID = 'e'
GROUP BY sub_client_cd;

Это работает, но мне нужно конкретнее ...

А это мой последний код ...

SELECT  sub_client_cd,  Enroll_date, Disenroll_Date, COUNT(*) as n 
FROM    big_pink.enrollment_test 
WHERE  Enroll_date < '2010-02-01' and  (Disenroll_date is null or  disenroll_date > '2010-01-01')
GROUP BY sub_client_cd;

Как я могу сделать это, используя SQL, или было бы проще добавить его в скрипт Python?

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