SQL-eksempel 03
|
<< Click to Display Table of Contents >> SQL-eksempel 03 |
![]() ![]()
|
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