SQL-eksempel 11

<< Click to Display Table of Contents >>

Navigation:  NeoBase SQL-eksempler >

SQL-eksempel 11

Previous pageReturn to chapter overviewNext page

Børn med IVH grad 1

For baggrund - se NeoBase opgørelser - definitioner og konventioner.

==================================================================================
/* Viser antal børn med IVH Gr.1 udskrevet indenfor valgte årgang baseret på

udskrivelsesdato og fordelt på GA grupper. N.B. Grupperer børn efter deres max.

registrerede grad af IVH inkl. for indl. i tilstødende år! N.K.mar.2005. */

 

SELECT

CASE

 WHEN np."GA hele uger" < 28 THEN '0: GA < 28'

 WHEN np."GA hele uger" >= 28 AND np."GA hele uger" < 32 THEN '1: GA 28-31'

 WHEN np."GA hele uger" >= 32 AND np."GA hele uger" < 37 THEN '2: GA 32-36'

 WHEN np."GA hele uger" >= 37 AND np."GA hele uger" < 99 THEN '3: GA >= 37'

 WHEN np."GA hele uger" = 99 THEN '4: GA ukendt'

END AS "GA gruppe",

np.PersonId

INTO MEMORY Temp

FROM NeoPers np;

--------------------------------------------------------------------------

SELECT DISTINCT mt2."GA gruppe", [Børn med IVH gr.1 udskr. 2004]

FROM MEMORY Temp mt2

LEFT JOIN

 (SELECT mt."GA gruppe",

   COUNT(n2.PersonId) AS "Børn med IVH gr.1 udskr. 2004"

  FROM

   (SELECT DISTINCT mt."GA gruppe", n2.PersonId

    FROM MEMORY Temp mt JOIN NeoBase2 n2 ON (n2.PersonId = mt.PersonId)

    WHERE EXTRACT(YEAR FROM n2.Udskrivelsesdato) = '2004'

     AND (n2.PersonId IN

      (SELECT n22.PersonId

       FROM NeoBase2 n22

       WHERE n22."IVH grad 0-4" < '9'

       GROUP BY n22.PersonId

       HAVING MAX(CAST(n22."IVH grad 0-4" AS INTEGER)) = 1)))

  GROUP BY

   [GA gruppe])

ON (mt2."GA gruppe" = mt."GA gruppe")

UNION

SELECT [GA gruppe], COUNT(n2.PersonId)

FROM

(SELECT DISTINCT 'Z: Sum' AS "GA gruppe", n2.PersonId FROM Neobase2 n2

 WHERE EXTRACT(YEAR FROM n2.Udskrivelsesdato) = '2004'

  AND (n2.PersonId IN

  (SELECT n22.PersonId

    FROM NeoBase2 n22

    WHERE n22."IVH grad 0-4" < '9'

    GROUP BY n22.PersonId

    HAVING MAX(CAST(n22."IVH grad 0-4" AS INTEGER)) = 1)))

GROUP BY

[GA gruppe]

ORDER BY

[GA gruppe];

==================================================================================

SQL-eksemplet

Specifikke målsætning: opgørelse af antal børn med IVH grad 1 og som har været udskrevet i valgte år.

Dette noget komplekse SQL-udtryk er konstrueret udfra følgende betragtninger:
Da IVH overvejende er en perinatalt indtræffende tilstand, er opgørelsen fokuseret på børn snarere end på udskrivelser (indlæggelser), idet repetitive registreringer for samme tilstand ved flere successive indlæggelser anses som udtryk for registreringer af samme hændelse eller uadskillelige hændelser. Samtidigt anses registrering af IVH først i den efterfølgende indlæggelse med udskrivelse efter årsskiftet til den efterfølgende årgang blot som udtryk for sen konstatering af en tidligere perinatal hændelse. Da børn ved successive udskrivelser evt. kan være registreret for forskellige grader af IVH, betragtes den højeste registreringskode (eksklusiv udeladelses-kode 9) som udtryk for den mest detaljerede og mest signifikante diagnose, hvorfor børnene kun inkluderes for deres max. registrerede IVH-kode.

Samme pincipper er anvendt ved SQL-udtræk for PVL og ROP.

_____________________________

27-10-2017 - © 2003-2017 Niels Knabe