@@ -2748,89 +2748,64 @@ PRINT 'Table created: ' + @TableName;
27482748
27492749-- META-END
27502750
2751+ -- setup, optional
2752+ -- DECLARE @ssd_timeframe_years int = 3;
27512753
2752- -- META-CONTAINER: {"type": "table", "name": "ssd_cla_episodes"}
2753- -- =============================================================================
2754- -- Description:
2755- -- Author: D2I
2756- -- Version: 1.1 clae_cla_episode_ceased _ date suffix add 310125 RH
2757- -- 1.0: Fix Aggr warnings use of isnull() 310524 RH
2758- -- 0.2: primary _need type/size adjustment from revised spec 160524 RH
2759- -- 0.1: cla_placement_id added as part of cla_placements review RH 060324
2760- -- Status: [R]elease
2761- -- Remarks:
2762- -- Dependencies:
2763- -- - ssd_involvements
2764- -- - ssd_person
2765- -- - HDM.Child_Social.FACT_CLA
2766- -- - HDM.Child_Social.FACT_REFERRALS
2767- -- - HDM.Child_Social.FACT_CARE_EPISODES
2768- -- - HDM.Child_Social.FACT_CASENOTES
2769- -- =============================================================================
2770-
2771- -- META-ELEMENT: {"type": "test"}
2772- SET @TableName = N ' ssd_cla_episodes' ;
2773-
2774-
2775- -- META-ELEMENT: {"type": "drop_table"}
2776- IF OBJECT_ID (' ssd_development.ssd_cla_episodes' ) IS NOT NULL DROP TABLE ssd_development .ssd_cla_episodes;
2777- IF OBJECT_ID (' tempdb..#ssd_cla_episodes' ) IS NOT NULL DROP TABLE #ssd_cla_episodes;
2754+ -- drops
2755+ IF OBJECT_ID (' tempdb..#ssd_cla_episodes' ,' U' ) IS NOT NULL DROP TABLE #ssd_cla_episodes;
2756+ IF OBJECT_ID (' ssd_development.ssd_cla_episodes' ,' U' ) IS NOT NULL DROP TABLE ssd_development .ssd_cla_episodes;
27782757
2779-
2780- -- META-ELEMENT: {"type": "create_table"}
2758+ -- target
27812759CREATE TABLE ssd_development .ssd_cla_episodes (
2782- clae_cla_episode_id NVARCHAR (48 ) PRIMARY KEY , -- metadata={"item_ref":"CLAE001A"}
2783- clae_person_id NVARCHAR (48 ), -- metadata={"item_ref":"CLAE002A"}
2784- clae_cla_placement_id NVARCHAR (48 ), -- metadata={"item_ref":"CLAE013A"}
2785- clae_cla_episode_start_date DATETIME , -- metadata={"item_ref":"CLAE003A"}
2786- clae_cla_episode_start_reason NVARCHAR (100 ), -- metadata={"item_ref":"CLAE004A"}
2787- clae_cla_primary_need_code NVARCHAR (3 ), -- metadata={"item_ref":"CLAE009A", "info":"Expecting codes N0-N9"}
2788- clae_cla_episode_ceased_date DATETIME , -- metadata={"item_ref":"CLAE005A"}
2789- clae_cla_episode_ceased_reason NVARCHAR (255 ), -- metadata={"item_ref":"CLAE006A"}
2790- clae_cla_id NVARCHAR (48 ), -- metadata={"item_ref":"CLAE010A"}
2791- clae_referral_id NVARCHAR (48 ), -- metadata={"item_ref":"CLAE011A"}
2792- clae_cla_last_iro_contact_date DATETIME , -- metadata={"item_ref":"CLAE012A"}
2793- clae_entered_care_date DATETIME -- metadata={"item_ref":"CLAE014A"}
2760+ clae_cla_episode_id nvarchar (48 ) PRIMARY KEY ,
2761+ clae_person_id nvarchar (48 ),
2762+ clae_cla_placement_id nvarchar (48 ),
2763+ clae_cla_episode_start_date datetime ,
2764+ clae_cla_episode_start_reason nvarchar (100 ),
2765+ clae_cla_primary_need_code nvarchar (3 ),
2766+ clae_cla_episode_ceased_date datetime ,
2767+ clae_cla_episode_ceased_reason nvarchar (255 ),
2768+ clae_cla_id nvarchar (48 ),
2769+ clae_referral_id nvarchar (48 ),
2770+ clae_cla_last_iro_contact_date datetime ,
2771+ clae_entered_care_date datetime
27942772);
27952773
2796-
2797-
2798- -- CTE to filter records
2799- -- approach taken over the [TESTING] version below as (SQL server)execution plan
2800- -- potentially affecting how the EXISTS filter against ssd_person is applied
2801- WITH FilteredData AS (
2774+ -- filtered source
2775+ ;WITH FilteredData AS (
28022776 SELECT
2803- fce .FACT_CARE_EPISODES_ID AS clae_cla_episode_id,
2804- fce .FACT_CLA_PLACEMENT_ID AS clae_cla_placement_id,
2805- TRY_CAST (fce .DIM_PERSON_ID AS NVARCHAR (48 )) AS clae_person_id,
2806- fce .CARE_START_DATE AS clae_cla_episode_start_date,
2807- fce .CARE_REASON_DESC AS clae_cla_episode_start_reason,
2808- fce .CIN_903_CODE AS clae_cla_primary_need_code,
2809- fce .CARE_END_DATE AS clae_cla_episode_ceased_date,
2810- fce .CARE_REASON_END_DESC AS clae_cla_episode_ceased_reason,
2811- fc .FACT_CLA_ID AS clae_cla_id,
2812- fc .FACT_REFERRAL_ID AS clae_referral_id,
2813- (SELECT MAX (ISNULL (CASE WHEN fce .DIM_PERSON_ID = cn .DIM_PERSON_ID
2814- AND cn .DIM_LOOKUP_CASNT_TYPE_ID_CODE = ' IRO'
2815- THEN cn .EVENT_DTTM END , ' 1900-01-01' )))
2816- AS clae_cla_last_iro_contact_date,
2817- fc .START_DTTM AS clae_entered_care_date
2818- FROM
2819- HDM .Child_Social .FACT_CARE_EPISODES AS fce
2820-
2821- JOIN
2822- HDM .Child_Social .FACT_CLA AS fc ON fce .FACT_CLA_ID = fc .FACT_CLA_ID
2823- LEFT JOIN
2824- HDM .Child_Social .FACT_CASENOTES cn ON fce .DIM_PERSON_ID = cn .DIM_PERSON_ID
2825-
2826- WHERE
2827- fce .DIM_PERSON_ID IN (SELECT TRY_CAST (pers_person_id AS INT ) FROM ssd_development .ssd_person ) --
2828-
2829- AND
2830- (fce .CARE_END_DATE >= DATEADD (YEAR , - @ssd_timeframe_years, GETDATE ()) -- #DtoI-1806
2831- OR fce .CARE_END_DATE IS NULL )
2832-
2833-
2777+ fce .FACT_CARE_EPISODES_ID AS clae_cla_episode_id,
2778+ TRY_CAST (fce .DIM_PERSON_ID AS nvarchar (48 )) AS clae_person_id,
2779+ fce .FACT_CLA_PLACEMENT_ID AS clae_cla_placement_id,
2780+ fce .CARE_START_DATE AS clae_cla_episode_start_date,
2781+ fce .CARE_REASON_DESC AS clae_cla_episode_start_reason,
2782+ fce .CIN_903_CODE AS clae_cla_primary_need_code,
2783+ fce .CARE_END_DATE AS clae_cla_episode_ceased_date,
2784+ fce .CARE_REASON_END_DESC AS clae_cla_episode_ceased_reason,
2785+ fc .FACT_CLA_ID AS clae_cla_id,
2786+ fc .FACT_REFERRAL_ID AS clae_referral_id,
2787+ ISNULL (
2788+ MAX (CASE
2789+ WHEN cn .DIM_LOOKUP_CASNT_TYPE_ID_CODE = ' IRO'
2790+ THEN cn .EVENT_DTTM
2791+ END ),
2792+ CAST (' 19000101' AS datetime )
2793+ ) AS clae_cla_last_iro_contact_date,
2794+ fc .START_DTTM AS clae_entered_care_date
2795+ FROM HDM .Child_Social .FACT_CARE_EPISODES AS fce
2796+ JOIN HDM .Child_Social .FACT_CLA AS fc
2797+ ON fc .FACT_CLA_ID = fce .FACT_CLA_ID
2798+ LEFT JOIN HDM .Child_Social .FACT_CASENOTES AS cn
2799+ ON cn .DIM_PERSON_ID = fce .DIM_PERSON_ID
2800+ WHERE EXISTS (
2801+ SELECT 1
2802+ FROM ssd_development .ssd_person p
2803+ WHERE TRY_CAST (p .pers_person_id AS int ) = fce .DIM_PERSON_ID
2804+ )
2805+ AND (
2806+ fce .CARE_END_DATE >= DATEADD (year , - @ssd_timeframe_years, GETDATE ())
2807+ OR fce .CARE_END_DATE IS NULL
2808+ )
28342809 GROUP BY
28352810 fce .FACT_CARE_EPISODES_ID ,
28362811 fce .DIM_PERSON_ID ,
@@ -2840,12 +2815,10 @@ WITH FilteredData AS (
28402815 fce .CIN_903_CODE ,
28412816 fce .CARE_END_DATE ,
28422817 fce .CARE_REASON_END_DESC ,
2843- fc .FACT_CLA_ID ,
2818+ fc .FACT_CLA_ID ,
28442819 fc .FACT_REFERRAL_ID ,
2845- fc .START_DTTM ,
2846- cn .DIM_PERSON_ID
2820+ fc .START_DTTM
28472821)
2848- -- META-ELEMENT: {"type": "insert_data"}
28492822INSERT INTO ssd_development .ssd_cla_episodes (
28502823 clae_cla_episode_id,
28512824 clae_person_id,
@@ -2858,7 +2831,7 @@ INSERT INTO ssd_development.ssd_cla_episodes (
28582831 clae_cla_id,
28592832 clae_referral_id,
28602833 clae_cla_last_iro_contact_date,
2861- clae_entered_care_date
2834+ clae_entered_care_date
28622835)
28632836SELECT
28642837 clae_cla_episode_id,
@@ -2873,8 +2846,7 @@ SELECT
28732846 clae_referral_id,
28742847 clae_cla_last_iro_contact_date,
28752848 clae_entered_care_date
2876- FROM
2877- FilteredData;
2849+ FROM FilteredData;
28782850
28792851
28802852
0 commit comments