@@ -2405,65 +2405,68 @@ BEGIN TRY
24052405 -- Optional scope:
24062406 -- AND fsa.FACT_SINGLE_ASSESSMENT_ID IN (SELECT cina_assessment_id FROM ssd_development.ssd_cin_assessments)
24072407
2408+
2409+ -- /* -------------------------------------------
2410+ -- Modern path: SQL Server 2022 or Azure SQL only
2411+ -- enable on modern servers, comment out legacy INSERT above and
2412+ -- uncomment this whole block
2413+ -- ------------------------------------------- */
2414+
2415+ -- INSERT INTO ssd_development.ssd_assessment_factors (
2416+ -- cinf_table_id,
2417+ -- cinf_assessment_id,
2418+ -- cinf_assessment_factors_json
2419+ -- )
2420+ -- SELECT
2421+ -- fsa.EXTERNAL_ID AS cinf_table_id,
2422+ -- fsa.FACT_SINGLE_ASSESSMENT_ID AS cinf_assessment_id,
2423+
2424+
2425+ -- -- -- KEY-VALUES output {"1B": "Yes", "2B": "Yes", ...}
2426+ -- -- N'{' + STRING_AGG(
2427+ -- -- CONCAT('"', c.ANSWER_NO, '": ', QUOTENAME(c.ANSWER, '"')),
2428+ -- -- N', '
2429+ -- -- ) WITHIN GROUP (ORDER BY c.num_part, c.alpha_part)
2430+ -- -- + N'}' AS cinf_assessment_factors_json
2431+
2432+ -- -- KEYS-ONLY alternative ["1A","2B",...]
2433+ -- N'[' + STRING_AGG(
2434+ -- CONCAT('"', c.ANSWER_NO, '"'),
2435+ -- N', '
2436+ -- ) WITHIN GROUP (ORDER BY c.num_part, c.alpha_part)
2437+ -- + N']' AS cinf_assessment_factors_json
2438+
2439+ -- FROM HDM.Child_Social.FACT_SINGLE_ASSESSMENT AS fsa
2440+ -- JOIN #ssd_d_codes AS c
2441+ -- ON c.FACT_SINGLE_ASSESSMENT_ID = fsa.FACT_SINGLE_ASSESSMENT_ID
2442+
2443+ -- WHERE fsa.EXTERNAL_ID <> -1
2444+ -- AND fsa.DIM_LOOKUP_STEP_SUBSTATUS_CODE NOT IN ('X','D')
2445+
2446+ -- GROUP BY fsa.EXTERNAL_ID, fsa.FACT_SINGLE_ASSESSMENT_ID;
2447+ -- -- Optional scope:
2448+ -- -- AND fsa.FACT_SINGLE_ASSESSMENT_ID IN (SELECT cina_assessment_id FROM ssd_development.ssd_cin_assessments)
2449+
2450+
24082451 COMMIT TRANSACTION ;
24092452END TRY
24102453BEGIN CATCH
24112454 IF XACT_STATE () <> 0 ROLLBACK TRANSACTION ; -- handles both 1 and -1 states
24122455 THROW ; -- preserve original error details
24132456END CATCH ;
24142457
2415- -- Cleanup
2416- IF OBJECT_ID (' tempdb..#ssd_d_codes' ,' U' ) IS NOT NULL DROP TABLE #ssd_d_codes;
2417- IF OBJECT_ID (' tempdb..#ssd_TMP_PRE_assessment_factors' ,' U' ) IS NOT NULL DROP TABLE #ssd_TMP_PRE_assessment_factors;
2418-
2419- -- -------------------------------------------------------------------------
2420- -- Modern path: SQL Server 2022 or Azure SQL only
2421- -- enable on modern servers, comment out legacy INSERT above and
2422- -- uncomment this whole block
2423- -- -------------------------------------------------------------------------
2424- -- INSERT INTO ssd_development.ssd_assessment_factors (
2425- -- cinf_table_id,
2426- -- cinf_assessment_id,
2427- -- cinf_assessment_factors_json
2428- -- )
2429- -- SELECT
2430- -- fsa.EXTERNAL_ID AS cinf_table_id,
2431- -- fsa.FACT_SINGLE_ASSESSMENT_ID AS cinf_assessment_id,
2432-
2433- --
2434- -- -- KEY-VALUES output {"1B": "Yes", "2B": "Yes", ...}
2435- -- N'{' + STRING_AGG(
2436- -- CONCAT('"', c.ANSWER_NO, '": ', QUOTENAME(c.ANSWER, '"')),
2437- -- N', '
2438- -- ) WITHIN GROUP (ORDER BY c.num_part, c.alpha_part)
2439- -- + N'}' AS cinf_assessment_factors_json
2440- --
2441- -- -- KEYS-ONLY alternative (swap with lines above if ["1A","2B",...] needed):
2442- -- -- N'[' + STRING_AGG(
2443- -- -- CONCAT('"', c.ANSWER_NO, '"'),
2444- -- -- N', '
2445- -- -- ) WITHIN GROUP (ORDER BY c.num_part, c.alpha_part)
2446- -- -- + N']' AS cinf_assessment_factors_json
2447- --
2448- -- FROM HDM.Child_Social.FACT_SINGLE_ASSESSMENT AS fsa
2449- -- JOIN #ssd_d_codes AS c
2450- -- ON c.FACT_SINGLE_ASSESSMENT_ID = fsa.FACT_SINGLE_ASSESSMENT_ID
2451-
2452- -- WHERE fsa.EXTERNAL_ID <> -1
2453- -- AND fsa.DIM_LOOKUP_STEP_SUBSTATUS_CODE NOT IN ('X','D')
2454-
2455- -- GROUP BY fsa.EXTERNAL_ID, fsa.FACT_SINGLE_ASSESSMENT_ID;
2456- -- -- Optional scope:
2457- -- -- AND fsa.FACT_SINGLE_ASSESSMENT_ID IN (SELECT cina_assessment_id FROM ssd_development.ssd_cin_assessments)
2458-
2459-
24602458-- -- META-ELEMENT: {"type": "create_fk"}
24612459-- ALTER TABLE ssd_development.ssd_assessment_factors ADD CONSTRAINT FK_ssd_cinf_assessment_id
24622460-- FOREIGN KEY (cinf_assessment_id) REFERENCES ssd_development.ssd_cin_assessments(cina_assessment_id);
24632461
24642462-- -- META-ELEMENT: {"type": "create_idx"}
24652463-- CREATE CLUSTERED INDEX IX_codes ON #ssd_d_codes(FACT_SINGLE_ASSESSMENT_ID, num_part, alpha_part, ANSWER_NO) INCLUDE (ANSWER, FACT_FORM_ID);
24662464
2465+ -- Cleanup
2466+ IF OBJECT_ID (' tempdb..#ssd_d_codes' ,' U' ) IS NOT NULL DROP TABLE #ssd_d_codes;
2467+ IF OBJECT_ID (' tempdb..#ssd_TMP_PRE_assessment_factors' ,' U' ) IS NOT NULL DROP TABLE #ssd_TMP_PRE_assessment_factors;
2468+
2469+
24672470
24682471-- META-ELEMENT: {"type": "test"}
24692472PRINT ' Table created: ' + @TableName;
0 commit comments