Skip to content

Commit 705e601

Browse files
committed
ssd_cla_episodes fix with refactor replace the scalar subquery
1 parent 0a68f12 commit 705e601

File tree

1 file changed

+56
-84
lines changed

1 file changed

+56
-84
lines changed

deployment_extracts/systemc/live/systemc_sqlserver_v1.2.7_1_20250901.sql

Lines changed: 56 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -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
27812759
CREATE 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"}
28492822
INSERT 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
)
28632836
SELECT
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

Comments
 (0)