SQL-eksempel 03

<< Click to Display Table of Contents >>

Navigation:  NeoBase SQL-eksempler >

SQL-eksempel 03

Previous pageReturn to chapter overviewNext page

Apgar 0-3/5 min for lokalfødte årgang xx

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

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

/* Viser antal lokalfødte børn m. Apgar 0-3/5 fra valgte årgang baseret på
udskrivelsesdato og fordelt på GA grupper */

 

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", [Antal lokalfødte m Apgar 0-3/5 2004]

FROM MEMORY Temp mt2

LEFT JOIN

 (SELECT mt."GA gruppe",

  COUNT(n2.PersonId) AS "Antal lokalfødte m Apgar 0-3/5 2004"

  FROM

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

    FROM MEMORY Temp mt

    JOIN NeoPers np ON (np.PersonId = mt.PersonId)

    JOIN NeoBase2 n2 ON (n2.PersonId = np.PersonId)

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

    AND (np."Apgar 5 min" >= 0) AND (np."Apgar 5 min" <= 3)

    AND (n2.PersonId IN

      (SELECT PersonId FROM NeoBase2 n22

      WHERE (n22."Indlaeggelses Nr" = 1) AND (n22."Overflyttet fra" = 0))))

  GROUP BY

   mt."GA gruppe")

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

ORDER BY

mt2."GA gruppe"

UNION

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

FROM

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

FROM NeoPers np JOIN Neobase2 n2 ON (n2.PersonId = np.PersonId)

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

  AND (np."Apgar 5 min" >= 0) AND (np."Apgar 5 min" <= 3)

  AND (n2.PersonId IN

  (SELECT PersonId FROM NeoBase2 n22

    WHERE (n22."Indlaeggelses Nr" = 1) AND (n22."Overflyttet fra" = 0))))

GROUP BY

[GA gruppe]

;

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

SQL-eksemplet

Specifikke målsætning: opgørelse af antal børn udskrevet pågældende årgang med Apgar 0-3 ved 5 minutter og kun børn født lokalt men ikke nødvendigvis indenfor valgte årgang, idet opgørelsen orienteres efter og afgrænses af udskrivningsåret.
For at kunne afgrænse opgørelsen til kun de lokalfødte, er det nødvendigt at hente oplysninger fra de enkelte indlæggelser, uden at hvert barn, uanset eventuelle genindlæggelser, tælles med mere end netop een gang. Sidstnævnte opnås ved at relatere de fundne børn med Apgar i det givne interval med den inderste sub-query, der finder netop de lokalfødte ved filtrering på børn med "Indlaeggelses Nr" = 1 og "Overflyttet fra" = 0, der ved netop ikke at afgrænse sig til den valgte årgang også medtager børn, der kan have deres første indlæggelse i det forudgående år. Metoden forudsætter korrekt nummerering af barnets indlægelse(r) på den stedlige afdeling, hviket kan kontrolleres via programmets indbyggede funktion på Data-tjek-menu'en eller med dette SQL-udtryk.
Nærværende SQL-udtryk inkluderer alle lokalfødte børn, der har været udskrevet indenfor den valgte årgang, og for lokalfødte børn med flere indlæggelser uanset hvorvidt den første udskrivelse er foregået i det foregående kalenderår.

_____________________________

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