Anyone see a problem with this?

  • I asked a developer to write a simple query against this table of mine.  He looked at me and said "do it yourself, this is garbage."  It's a table that holds insurance records and this is one person.  Every time they make a change in insurance, a new row is added.  He said I should just update the table rather than add a new row, LOL.  How will I know the history if I do that?  There are about 13K rows of data for 800 people.  I told him to ignore the duplicates by using the latest intID, the old ones are for history only.  Easy, right?

    intIDFkeyUniv_IDdtmDateEnroll_dateInitial_enrollNew_hireNew_hire_dateChange_statusChange_status_dateDPadd_dp_dateAdd_famAdd_fam_dateadd_fam_reasonAdd_fam_otherChange_familyChange_family_dateDelete_familyDelete_family_dateDelete_family_reasonDelete_family_otherCancel_waiverCancel_waiver_dateWaive_medWaive_dentDecline_visDecline_coveredDecline_covered_otherDecline_covered_reasonDecline_dpDecline_childDecline_dep_coveredDecline_dep_covered_otherDecline_dep_covered_reasonEnroll_medEnroll_dentEnroll_visEnroll_selfself_medPCP_selfPCD_selfself_dentself_visDisabled_selfEnroll_dpLast_name_dpMI_dpFirst_name_dpDOB_dpSSN_dpgender_dpdp_meddp_dentdp_visPCP_dpPCD_dpDisabled_dpstart_dpend_dpEnroll_child1Last_name_child1MI_child1First_name_child1DOB_child1SSN_child1gender_child1Student_child1child1_medchild1_dentchild1_visPCP_child1PCD_child1Disabled_child1start_child1end_child1Enroll_child2Last_name_child2MI_child2First_name_child2DOB_child2SSN_child2gender_child2Student_child2child2_medchild2_dentchild2_visPCP_child2PCD_child2Disabled_child2start_child2end_child2Enroll_child3Last_name_child3MI_child3First_name_child3DOB_child3SSN_child3gender_child3Student_child3child3_medchild3_dentchild3_visPCP_child3PCD_child3Disabled_child3start_child3end_child3Enroll_child4Last_name_child4MI_child4First_name_child4DOB_child4SSN_child4gender_child4Student_child4child4_medchild4_dentchild4_visPCP_child4PCD_child4Disabled_child4start_child4end_child4Enroll_child5Last_name_child5MI_child5First_name_child5DOB_child5SSN_child5gender_child5Student_child5child5_medchild5_dentchild5_visPCP_child5PCD_child5Disabled_child5start_child5end_child5Benif1Benif1_relationBenif1_DOBBenif1_addressBenif1_percentBenif2Benif2_relationBenif2_DOBBenif2_addressBenif2_percentBenif3Benif3_relationBenif3_DOBBenif3_addressBenif3_percentContingent1Contingent1_relationContingent1_DOBContingent1_addressContingent1_percentContingent2Contingent2_relationContingent2_DOBContingent2_addressContingent2_percentContingent3Contingent3_relationContingent3_DOBContingent3_addressContingent3_percentLifePremiumCOBRAIns_privacymarketplaceIPOpen_enrollWaive_allOE_reasonPCDA_selfPCDA_dpPCDA_child1PCDA_child2PCDA_child3PCDA_child4PCDA_child5MHMO_PMHMO_PSMHMO_PCMHMO_FMPPO_PMPPO_PSMPPO_PCMPPO_FKMP_PKMP_PSKMP_PCKMP_FDHMO_PDHMO_PSDHMO_PCDHMO_FDPPO_PDPPO_PSDPPO_PCDPPO_FVIS_PVIS_PSVIS_PCVIS_FMHMO_P_ALTMHMO_PS_ALTMHMO_PC_ALTMHMO_F_ALTMPPO_P_ALTMPPO_PS_ALTMPPO_PC_ALTMPPO_F_ALTKMP_P_ALTKMP_PS_ALTKMP_PC_ALTKMP_F_ALTDHMO_P_ALTDHMO_PS_ALTDHMO_PC_ALTDHMO_F_ALTDPPO_P_ALTDPPO_PS_ALTDPPO_PC_ALTDPPO_F_ALTVIS_P_ALTVIS_PS_ALTVIS_PC_ALTVIS_F_ALTLIFE_PLIFE_P_ALTBI_PREMBI_PREM_ALTBI_MEDBI_MED_ALTBI_DENBI_DEN_ALTBI_VISBI_VIS_ALTBI_LIFEBI_LIFE_ALTPrivacyTermsrole_dependent1intFormTypeintWizardintWaiverStepmnthAmount
    99461630aaa4/4/2016 8:334/4/2016 0:00NULLYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLAHMO_ENULLNULLEYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULL12.251.7.18NULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLNULLNULLNULLNULLNULLNULLNULL
    99471630aaa4/4/2016 8:344/4/2016 0:00NULLYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLAHMO_ENULLNULLEYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL29.06000000000000000000000000000000000000000000000000029.0629.0629.060000000NULLNULLNULLNULLNULLNULLNULL
    99511630aaa4/4/2016 9:434/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_ENULLNULLDYNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL011.08YYY151.152.101.44NULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLYYNULLNULLNULLNULLNULL
    99521630aaa4/4/2016 9:594/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000YYNULLNULLNULLNULLNULL
    99551630aaa4/4/2016 11:274/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000YYNULLNULLNULLNULLNULL
    99801630aaa4/4/2016 11:274/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000NULLNULLNULLNULLNULLNULLNULL
    105901630aaa9/1/2016 12:454/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000NULLNULLNULLNULLNULLNULLNULL
    110381630aaa11/3/2016 15:214/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12xxxx  12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL011.08YYY151.152.101.44NULLNULLNULL162943NULL162943162943NULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLYYNULLNULLNULLNULLNULL
    111031630aaa11/10/2016 13:324/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDxxxNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000NULLNULLNULLNULLNULLNULLNULL
    113491630aaa12/19/2016 16:004/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL011.08YYY151.152.101.44NULLNULLNULL162943NULL162943162943NULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLYYNULLNULLNULLNULLNULL
    115441630aaa12/20/2016 13:424/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULLNULLNULLNULLNULL
    120021630aaa4/6/2017 10:424/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULLNULLNULLNULLNULL
    121951630aaa6/8/2017 9:334/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12/x12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULLNULLNULLNULLNULL
    124391630aaa7/21/2017 15:504/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x 12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULLNULLNULLNULLNULL
    125141630aaa8/3/2017 12:534/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULL0000
    128121630aaa9/14/2017 8:524/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULL0000
    136811630aaa12/28/2017 16:384/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000069.4200010.7400000007.3100000000000000000000000000087.47069.42010.7407.31000YYNULL0000
    149361630aaa8/2/2018 16:294/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x 12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000069.4200010.7400000007.3100000000000000000000000000087.47069.42010.7407.31000YYNULL0000
    153231630aaa9/21/2018 16:534/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULL10/1/2018 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLENULLAhmed3/12/xxx  12:00:00 AMNULLMYYYNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x 12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL012.46YYY151.152.101.44NULLNULLNULL162943162943162943162943NULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLYYNULL0000
    153441630aaa9/27/2018 15:464/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLY10/1/2018 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLENULLAhmed3/12/xxx 12:00:00 AMNULLMYYYNULLNULLNULL10/1/2018 0:00NULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943162943162943162943NULLNULLNULL00000000000100.2700014.14000000010.7400000000000000000000000000125.150100.27014.14010.74000YYNULL0000

  • So what is the question and what have you done to solve the problem?

  • What you do is what he said. You have one table with one record (the most recent updates). If you want version history, keep the individual rows in a history table with the date the record was archived.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • Brandie Tarvin - Saturday, October 13, 2018 4:01 AM

    What you do is what he said. You have one table with one record (the most recent updates). If you want version history, keep the individual rows in a history table with the date the record was archived.

    It depends ....

    In most cases, the above advice is good.  However, as always, there are exceptions.

    On our busiest system we have a high-volume table that currently requires 405K individual upserts per minute.  Each upsert is as a result of a real person clicking a button on a web page, and has a financial impact, so it needs proper auditing.  In order to handle the volume, we simply always add a new record.  We also use a composite clustered key to prevent hot-spotting.  When reading, we then look for the most recent record per PK.

  • I'm not sure from your question what the column name is for a person? but you would need a query like this to get the most recent row for each person.
    ;WITH CTE AS
    (
        SELECT DISTINCT PersonId
         FROM myTable
    )
    SELECT B.*
    FROM CTE A
    CROSS APPLY(SELECT TOP(1) *
                   FROM myTable B
                 WHERE B.PersonId = A.PersonId
                 ORDER BY intID DESC) AS B

    You will also need an index to make it perform well:
    CREATE UNIQUE INDEX IX_MyTable_1 ON MyTable(PersonId, intID)

  • DesNorton - Saturday, October 13, 2018 5:53 AM

    Brandie Tarvin - Saturday, October 13, 2018 4:01 AM

    What you do is what he said. You have one table with one record (the most recent updates). If you want version history, keep the individual rows in a history table with the date the record was archived.

    It depends ....

    In most cases, the above advice is good.  However, as always, there are exceptions.

    On our busiest system we have a high-volume table that currently requires 405K individual upserts per minute.  Each upsert is as a result of a real person clicking a button on a web page, and has a financial impact, so it needs proper auditing.  In order to handle the volume, we simply always add a new record.  We also use a composite clustered key to prevent hot-spotting.  When reading, we then look for the most recent record per PK.

    considering we're talking insurance - history is key.  Keeping accurate records of who had what, when, is a fairly critical concept (but I suspect that Brandie knows that !)

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • Hmmm.... this is all starting to sound a bit different than what the actual wording of the post might convey.  Please see the following...
    https://www.sqlservercentral.com/Forums/2002689/Query-slow-Help-improve?Update=1#bm2002914

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Matt Miller (4) - Saturday, October 13, 2018 10:23 AM

    DesNorton - Saturday, October 13, 2018 5:53 AM

    Brandie Tarvin - Saturday, October 13, 2018 4:01 AM

    What you do is what he said. You have one table with one record (the most recent updates). If you want version history, keep the individual rows in a history table with the date the record was archived.

    It depends ....

    In most cases, the above advice is good.  However, as always, there are exceptions.

    On our busiest system we have a high-volume table that currently requires 405K individual upserts per minute.  Each upsert is as a result of a real person clicking a button on a web page, and has a financial impact, so it needs proper auditing.  In order to handle the volume, we simply always add a new record.  We also use a composite clustered key to prevent hot-spotting.  When reading, we then look for the most recent record per PK.

    considering we're talking insurance - history is key.  Keeping accurate records of who had what, when, is a fairly critical concept (but I suspect that Brandie knows that !)

    Why yes, I do. @=)

    In fact, the versioning is what we do at my office (also an insurance company). Because the users need to see the actual current record, but agents, etc. need to see history via reporting. So the versioning is in a reporting database, accessible at need, and the current record is in the OLTP database. Actually, we have a history table in the OLTP database too, but it's replicated to the reporting db every day so that the reports don't hit current production.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • I'm actually restructuring all of the tables that this guy (the OP) created.
    Flat tables, no normalization, insane naming conventions, no indexing, all nullable, multiple rows per clientid (fkLogin for "foreign key" Login.  Not even a foreign key, he just calls it that) . 
    His queries for finding the latest row for each fkLogin are amazingly entertaining.  Sample of his work for another table he has.

    SELECT intID,
    (SELECT TOP 1 First_name FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS First_name,
    (SELECT TOP 1 Last_name FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS Last_name,
    (SELECT TOP 1 Email FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS Email,
    (SELECT TOP 1 Start_date FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS Start_date,
    (SELECT TOP 1 End_date FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS End_date,
    isnull((SELECT TOP 1 mnthAmount FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC),0) AS mnthAmount,
    isnull((SELECT TOP 1 medPlan FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC),'NONE') AS medPlan,
    (SELECT TOP 1 okBatch FROM xxx.MyTable WHERE fkLogin =xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS okBatch
    FROM gpowers.mstr_tbl_Login
    WHERE fkClientID = 16 AND (SELECT TOP 1 okBatch FROM [xxx].[MyTable] WHERE fkLogin = xxx.mstr_tbl_Login.intID ORDER BY intID DESC) = 'y'
    ORDER BY strLName ASC

    I just use a CTE and partition over fkLogin order by intId DESC then pull only row number 1 from the cte.

    ;with myCTE(RowNum, First, Last .......)
    as(
         ROW_NUMBER() OVER (PARTITION BY a.fkLogin ORDER BY a.intID DESC) -- Another intId in MyTable, not mst_tbl_Login
        ,a.First
        ,a.Last
        ,
        .
       from MyTable a
       join mstr_tbl_Login b on b.intId = a.fkLogin
       where a.OKBatch = 'Y' and b.fkClientId = 16
    )

    select first, last ..... from myCTE where RowNum = 1

  • SQLStud 74876 - Monday, October 15, 2018 3:45 PM

    I'm actually restructuring all of the tables that this guy (the OP) created.
    Flat tables, no normalization, insane naming conventions, no indexing, all nullable, multiple rows per clientid (fkLogin for "foreign key" Login.  Not even a foreign key, he just calls it that) . 
    His queries for finding the latest row for each fkLogin are amazingly entertaining.  Sample of his work for another table he has.

    SELECT intID,
    (SELECT TOP 1 First_name FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS First_name,
    (SELECT TOP 1 Last_name FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS Last_name,
    (SELECT TOP 1 Email FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS Email,
    (SELECT TOP 1 Start_date FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS Start_date,
    (SELECT TOP 1 End_date FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS End_date,
    isnull((SELECT TOP 1 mnthAmount FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC),0) AS mnthAmount,
    isnull((SELECT TOP 1 medPlan FROM xxx.MyTable WHERE fkLogin = xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC),'NONE') AS medPlan,
    (SELECT TOP 1 okBatch FROM xxx.MyTable WHERE fkLogin =xxx.mstr_tbl_Login.intID AND okBatch = 'y' ORDER BY intID DESC) AS okBatch
    FROM gpowers.mstr_tbl_Login
    WHERE fkClientID = 16 AND (SELECT TOP 1 okBatch FROM [xxx].[MyTable] WHERE fkLogin = xxx.mstr_tbl_Login.intID ORDER BY intID DESC) = 'y'
    ORDER BY strLName ASC

    I just use a CTE and partition over fkLogin order by intId DESC then pull only row number 1 from the cte.

    ;with myCTE(RowNum, First, Last .......)
    as(
         ROW_NUMBER() OVER (PARTITION BY a.fkLogin ORDER BY a.intID DESC) -- Another intId in MyTable, not mst_tbl_Login
        ,a.First
        ,a.Last
        ,
        .
       from MyTable a
       join mstr_tbl_Login b on b.intId = a.fkLogin
       where a.OKBatch = 'Y' and b.fkClientId = 16
    )

    select first, last ..... from myCTE where RowNum = 1

    Good lord.... I worked with a couple of moroffs that wrote code like the first one above and they claimed to be "experts" in both the front end and in T-SQL.  Then they blamed the person in QA for "simply selecting too much data at one time" (by date span for  year) when it ran for 12 minutes and timed out.  When I got done with the rewrite, it ran so fast that QA thought it couldn't have possibly executed correctly.

    I don't want or need to know the name of the company that you're trying to help.  I can tell you that you have several kindred spirits on this forum that would do the same and, although I can't speak for them, I'm pretty happy to see someone new to these forums take such a bull by the horns and just "do it right".  My hat's off to you

    Heh... and thanks for the entertaining posts.  I could "feel" your agony.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • SQLStud 74876 - Friday, October 12, 2018 5:52 PM

    I asked a developer to write a simple query against this table of mine.  He looked at me and said "do it yourself, this is garbage."  It's a table that holds insurance records and this is one person.  Every time they make a change in insurance, a new row is added.  He said I should just update the table rather than add a new row, LOL.  How will I know the history if I do that?  There are about 13K rows of data for 800 people.  I told him to ignore the duplicates by using the latest intID, the old ones are for history only.  Easy, right?

    intIDFkeyUniv_IDdtmDateEnroll_dateInitial_enrollNew_hireNew_hire_dateChange_statusChange_status_dateDPadd_dp_dateAdd_famAdd_fam_dateadd_fam_reasonAdd_fam_otherChange_familyChange_family_dateDelete_familyDelete_family_dateDelete_family_reasonDelete_family_otherCancel_waiverCancel_waiver_dateWaive_medWaive_dentDecline_visDecline_coveredDecline_covered_otherDecline_covered_reasonDecline_dpDecline_childDecline_dep_coveredDecline_dep_covered_otherDecline_dep_covered_reasonEnroll_medEnroll_dentEnroll_visEnroll_selfself_medPCP_selfPCD_selfself_dentself_visDisabled_selfEnroll_dpLast_name_dpMI_dpFirst_name_dpDOB_dpSSN_dpgender_dpdp_meddp_dentdp_visPCP_dpPCD_dpDisabled_dpstart_dpend_dpEnroll_child1Last_name_child1MI_child1First_name_child1DOB_child1SSN_child1gender_child1Student_child1child1_medchild1_dentchild1_visPCP_child1PCD_child1Disabled_child1start_child1end_child1Enroll_child2Last_name_child2MI_child2First_name_child2DOB_child2SSN_child2gender_child2Student_child2child2_medchild2_dentchild2_visPCP_child2PCD_child2Disabled_child2start_child2end_child2Enroll_child3Last_name_child3MI_child3First_name_child3DOB_child3SSN_child3gender_child3Student_child3child3_medchild3_dentchild3_visPCP_child3PCD_child3Disabled_child3start_child3end_child3Enroll_child4Last_name_child4MI_child4First_name_child4DOB_child4SSN_child4gender_child4Student_child4child4_medchild4_dentchild4_visPCP_child4PCD_child4Disabled_child4start_child4end_child4Enroll_child5Last_name_child5MI_child5First_name_child5DOB_child5SSN_child5gender_child5Student_child5child5_medchild5_dentchild5_visPCP_child5PCD_child5Disabled_child5start_child5end_child5Benif1Benif1_relationBenif1_DOBBenif1_addressBenif1_percentBenif2Benif2_relationBenif2_DOBBenif2_addressBenif2_percentBenif3Benif3_relationBenif3_DOBBenif3_addressBenif3_percentContingent1Contingent1_relationContingent1_DOBContingent1_addressContingent1_percentContingent2Contingent2_relationContingent2_DOBContingent2_addressContingent2_percentContingent3Contingent3_relationContingent3_DOBContingent3_addressContingent3_percentLifePremiumCOBRAIns_privacymarketplaceIPOpen_enrollWaive_allOE_reasonPCDA_selfPCDA_dpPCDA_child1PCDA_child2PCDA_child3PCDA_child4PCDA_child5MHMO_PMHMO_PSMHMO_PCMHMO_FMPPO_PMPPO_PSMPPO_PCMPPO_FKMP_PKMP_PSKMP_PCKMP_FDHMO_PDHMO_PSDHMO_PCDHMO_FDPPO_PDPPO_PSDPPO_PCDPPO_FVIS_PVIS_PSVIS_PCVIS_FMHMO_P_ALTMHMO_PS_ALTMHMO_PC_ALTMHMO_F_ALTMPPO_P_ALTMPPO_PS_ALTMPPO_PC_ALTMPPO_F_ALTKMP_P_ALTKMP_PS_ALTKMP_PC_ALTKMP_F_ALTDHMO_P_ALTDHMO_PS_ALTDHMO_PC_ALTDHMO_F_ALTDPPO_P_ALTDPPO_PS_ALTDPPO_PC_ALTDPPO_F_ALTVIS_P_ALTVIS_PS_ALTVIS_PC_ALTVIS_F_ALTLIFE_PLIFE_P_ALTBI_PREMBI_PREM_ALTBI_MEDBI_MED_ALTBI_DENBI_DEN_ALTBI_VISBI_VIS_ALTBI_LIFEBI_LIFE_ALTPrivacyTermsrole_dependent1intFormTypeintWizardintWaiverStepmnthAmount
    99461630aaa4/4/2016 8:334/4/2016 0:00NULLYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLAHMO_ENULLNULLEYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULL12.251.7.18NULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLNULLNULLNULLNULLNULLNULLNULL
    99471630aaa4/4/2016 8:344/4/2016 0:00NULLYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLAHMO_ENULLNULLEYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL29.06000000000000000000000000000000000000000000000000029.0629.0629.060000000NULLNULLNULLNULLNULLNULLNULL
    99511630aaa4/4/2016 9:434/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_ENULLNULLDYNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL011.08YYY151.152.101.44NULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLYYNULLNULLNULLNULLNULL
    99521630aaa4/4/2016 9:594/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000YYNULLNULLNULLNULLNULL
    99551630aaa4/4/2016 11:274/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000YYNULLNULLNULLNULLNULL
    99801630aaa4/4/2016 11:274/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000NULLNULLNULLNULLNULLNULLNULL
    105901630aaa9/1/2016 12:454/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000NULLNULLNULLNULLNULLNULLNULL
    110381630aaa11/3/2016 15:214/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12xxxx  12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL011.08YYY151.152.101.44NULLNULLNULL162943NULL162943162943NULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLYYNULLNULLNULLNULLNULL
    111031630aaa11/10/2016 13:324/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLWWNULLYNULLNULLYYYNULLNULLAHMO_CNULLNULLDNNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDxxxNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLDNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL000000000000000000000000000000000000000000000000000000000000NULLNULLNULLNULLNULLNULLNULL
    113491630aaa12/19/2016 16:004/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL011.08YYY151.152.101.44NULLNULLNULL162943NULL162943162943NULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLYYNULLNULLNULLNULLNULL
    115441630aaa12/20/2016 13:424/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULLNULLNULLNULLNULL
    120021630aaa4/6/2017 10:424/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULLNULLNULLNULLNULL
    121951630aaa6/8/2017 9:334/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULLNULLNULLExxxNULLxxx1/12/x12:00:00 AMNULLMNYYYNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULLNULLNULLNULLNULL
    124391630aaa7/21/2017 15:504/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x 12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULLNULLNULLNULLNULL
    125141630aaa8/3/2017 12:534/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULL0000
    128121630aaa9/14/2017 8:524/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000068.8600010.5200000007.3100000000000000000000000000086.69068.86010.5207.31000YYNULL0000
    136811630aaa12/28/2017 16:384/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000069.4200010.7400000007.3100000000000000000000000000087.47069.42010.7407.31000YYNULL0000
    149361630aaa8/2/2018 16:294/4/2016 0:00NULLY3/28/2016 0:00NULLNULLNULLNULLYNULLOpen EnrollmentNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLDNULLNULLNULLNULLNULLFNULLNULLNULLNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x 12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943NULL162943162943NULLNULLNULL000000000069.4200010.7400000007.3100000000000000000000000000087.47069.42010.7407.31000YYNULL0000
    153231630aaa9/21/2018 16:534/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLNULL10/1/2018 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLENULLAhmed3/12/xxx  12:00:00 AMNULLMYYYNULLNULLNULLNULLNULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x 12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL012.46YYY151.152.101.44NULLNULLNULL162943162943162943162943NULLNULLNULL00000000000000000000000000000000000000000000000000000NULL0NULL0NULL0NULLYYNULL0000
    153441630aaa9/27/2018 15:464/4/2016 0:00NULLNULLNULLNULLNULLNULLNULLY10/1/2018 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLKaiser_EDHMO_EEEYNULLNULLYYNULLENULLAhmed3/12/xxx 12:00:00 AMNULLMYYYNULLNULLNULL10/1/2018 0:00NULLExxxNULLxxx2/11/xxxx 12:00:00 AMNULLFNYYYNULLNULLNULL1/1/2017 0:00NULLExxxNULLxxx1/12/x  12:00:00 AMNULLMNYYYNULLNULLNULL1/1/2017 0:00NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL00YYYNULLNULLNULLNULL162943162943162943162943NULLNULLNULL00000000000100.2700014.14000000010.7400000000000000000000000000125.150100.27014.14010.74000YYNULL0000

    The table is garbage indeed.
    How many changes do you expect to see in SSN_dp or DOB_Child1 columns?
    What are they doing in "History" table?

    How do you deal with families with 6 children?
    What if a child has died?

    And what's the deal with these columns?

    Add_famAdd_fam_dateadd_fam_reasonAdd_fam_otherChange_familyChange_family_dateDelete_familyDelete_family_dateDelete_family_reasonDelete_family_other

    Aren't add/delete actions are sorts of "change"?
    Can a "family"  be added after it's been deleted?

    It's just a first pick, just to start the conversation.

    _____________
    Code for TallyGenerator

  • Sergiy,
    Just so you know, please see the following.
    https://www.sqlservercentral.com/Forums/FindPost2003341.aspx

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden - Sunday, October 21, 2018 11:18 AM

    Sergiy,
    Just so you know, please see the following.
    https://www.sqlservercentral.com/Forums/FindPost2003341.aspx

    No, I did not see that.

    I must say I strongly disagree with you in this:

    Few could be both that ignorant and arrogant about T-SQL, PII, and databases in general, especially all at once. 


    I recently had an experience with a company working for a major AUS/NZ retailer who had 9 or 10 SQL developers working for them
    Want to know how many of them matched your description? 
    100%.

    They maintain CustomerProfile table of 368 columns (the number must be much bigger by now, as 3 columns were added just within a month) which gets rebuilt on average twice a day.
    It's rebuilt in a very "sophisticated" way:
    1. Truncated.
    2. Populated with all current CustomerID's and NULL's in every other column.
    3. Updated column by column, one column per UPDATE.

    The process takes about 2 hours (they've got very powerful servers).
    Because every follow-up process and every report depends on this table there is effectively an outage for 2 hours.

    You can imagine - there is a little point in indexing that "one-off" table - so it's all table-scan queries against 3.5 million rows table.

    Transaction tables are clustered by TransactionID - I bet you guessed it.
    There are about 3 millions of transactions recorded per day.
    So, in order to make "last 3 month" aggregations finish before end of tomorrow they "partitioned" it into weekly sections, every one with week number in the name of the table.
    Yep, heaps of dynamic SQL, heaps of weekly-recreated UNION ALL views, etc.
    Of course, there is no indexing, because it won't make much difference on double-layer views union'ing 13 tables. 

    And you know - its all considered "up-t-standards" by the management.
    That's apparently how it must be done, according to all the white pages they read in recent years.
    It's a mainstream now.
    They even won some awards for technological achievements last year.

    So, go away, you retarded bugger - you don't have a clue about contemporary advanced technologies!

    _____________
    Code for TallyGenerator

  • Sergiy - Sunday, October 21, 2018 8:06 PM

    Jeff Moden - Sunday, October 21, 2018 11:18 AM

    Sergiy,
    Just so you know, please see the following.
    https://www.sqlservercentral.com/Forums/FindPost2003341.aspx

    No, I did not see that.

    I must say I strongly disagree with you in this:

    Few could be both that ignorant and arrogant about T-SQL, PII, and databases in general, especially all at once. 


    I recently had an experience with a company working for a major AUS/NZ retailer who had 9 or 10 SQL developers working for them
    Want to know how many of them matched your description? 
    100%.

    They maintain CustomerProfile table of 368 columns (the number must be much bigger by now, as 3 columns were added just within a month) which gets rebuilt on average twice a day.
    It's rebuilt in a very "sophisticated" way:
    1. Truncated.
    2. Populated with all current CustomerID's and NULL's in every other column.
    3. Updated column by column, one column per UPDATE.

    The process takes about 2 hours (they've got very powerful servers).
    Because every follow-up process and every report depends on this table there is effectively an outage for 2 hours.

    You can imagine - there is a little point in indexing that "one-off" table - so it's all table-scan queries against 3.5 million rows table.

    Transaction tables are clustered by TransactionID - I bet you guessed it.
    There are about 3 millions of transactions recorded per day.
    So, in order to make "last 3 month" aggregations finish before end of tomorrow they "partitioned" it into weekly sections, every one with week number in the name of the table.
    Yep, heaps of dynamic SQL, heaps of weekly-recreated UNION ALL views, etc.
    Of course, there is no indexing, because it won't make much difference on double-layer views union'ing 13 tables. 

    And you know - its all considered "up-t-standards" by the management.
    That's apparently how it must be done, according to all the white pages they read in recent years.
    It's a mainstream now.
    They even won some awards for technological achievements last year.

    So, go away, you retarded bugger - you don't have a clue about contemporary advanced technologies!

    Heh... I must say that when I wrote...

    Few could be both that ignorant and arrogant about T-SQL, PII, and databases in general, especially all at once. 

    ... I did so with a grimace but suspected I knew the frustration of the person I was addressing. 
    I agree with you.  It's been the norm rather than the exception since I can remember.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden - Monday, October 22, 2018 4:44 AM

    I agree with you.  It's been the norm rather than the exception since I can remember.

    Did you see those statements - "In the last decade amount of data we collected increased by 10 .. 20 .. 50 .. whatever number of times".
    That's so cool and progressive! Right?
    Now, parse all those XML's, JSON's and all other data formats into a properly normalized relational data storage - where will that progress disappear?
    Yep, nothing to show pretty much.
    Lousy solutions are good for everyone.
    Except may be for end users, but who asks them?

    _____________
    Code for TallyGenerator

Viewing 15 posts - 1 through 15 (of 16 total)

You must be logged in to reply to this topic. Login to reply