wiki:AdvancedReports

Version 3 (modified by Nikola Torbovski, 7 months ago) ( diff )

--

Напредни извештаи од базата (SQL)

Вкупна количина потрошен инсулин за дијабетичари - ОДОБРЕНО

  • Член: Никола Торбовски 151200
  • Опис: Вкупна количина на потрошен конкретен инсулин за секој дијабетичар според вредностите внесени во секој запис со инсулин, групирани за сите години и сите месеци (прва група), за секоја година поединечно (втора група) и за секоја година и месец поединечно (трета група)
select
        c.id ,
        c.ime as dijabeticar_ime,
        c.prezime as dijabeticar_prezime,
        c.pol ,
        c.datum_na_ragjanje ,
        d.data_na_otkrivanje as datum_na_otkrivanje_na_dijabetes,
        td.ime as tip_dijabetes,
        tmp.godina,
        tmp.mesec,
        tmp.vkupno_doziran_insulin,
        m.ime as insulin_ime,
        m.proizvoditel as insulin_proizvoditel,
        ti.ime as insulin_tip
from (
        select 
                zidi.dijabeticar_id,
                extract(year from zidi."data") as godina,
                extract(month from zidi."data") as mesec,
                zidi.insulin_id,
                sum(zidi.kolicina) as vkupno_doziran_insulin
        from zapis_insulin_doziran_insulin zidi
        group by grouping sets(
                (zidi.dijabeticar_id, zidi.insulin_id)
                , (zidi.dijabeticar_id, extract(year from zidi."data"), zidi.insulin_id)
                , (zidi.dijabeticar_id, extract(year from zidi."data"), extract(month from zidi."data"), zidi.insulin_id)
        )
        order by zidi.dijabeticar_id, extract(year from zidi."data") nulls first, extract(month from zidi."data") nulls first, zidi.insulin_id
        ) as tmp
join insulin i on tmp.insulin_id = i.id 
join medikament m on i.id = m.id
join tip_insulin ti on i.tip_insulin_id = ti.id
join dijabeticar d on tmp.dijabeticar_id = d.id
join tip_dijabetes td on d.tip_dijabetes_id = td.id 
join covek c on d.id = c.id;

Три-месечен просек на измерен шеќер во крв кај дијабетичари - ОДОБРЕНО

  • Член: Никола Торбовски 151200
  • Опис: Три-месечен просек на измерен шеќер во крв кај дијабетичари пресметан за секој месец од годината за кој има запис и претходните два месеца(календарски)
    select 
            c.id ,
            c.ime ,
            c.prezime ,
            c.pol ,
            c.datum_na_ragjanje ,
            d.data_na_otkrivanje as datum_na_otkrivanje_na_dijabetes,
            td.ime as tip_dijabetes,
            extract(year from A.godina_mesec) as godina,
            extract(month from A.godina_mesec) as mesec,
            (sum(A.suma_vrednosti_za_mesec) over (partition by A.id order by A.godina_mesec range between '2 months' preceding and current row) / sum(A.broj_vrednosti_za_mesec) over(partition by A.id order by A.godina_mesec range between '2 months' preceding  and current row)) as prosek_za_prethodni_tri_meseci
    from
    (select
            zsis.dijabeticar_id as id,
            date_trunc('month', zsis."data") as godina_mesec,
            sum(zsis.vrednost) as suma_vrednosti_za_mesec,
            count(zsis.vrednost) as broj_vrednosti_za_mesec
    from zapis_so_izmeren_sekjer zsis
    group by zsis.dijabeticar_id , date_trunc('month', zsis."data")
    order by zsis.dijabeticar_id , date_trunc('month', zsis."data")
    ) as A
    join dijabeticar d on A.id = d.id
    join tip_dijabetes td on d.tip_dijabetes_id = td.id 
    join covek c on d.id = c.id;
    
Note: See TracWiki for help on using the wiki.