มกราคม 2014
จ. อ. พ. พฤ. ศ. ส. อา.
« ธ.ค.   ก.พ. »
 12345
6789101112
13141516171819
20212223242526
2728293031  
มกราคม 2014
จ. อ. พ. พฤ. ศ. ส. อา.
« ธ.ค.   ก.พ. »
 12345
6789101112
13141516171819
20212223242526
2728293031  

คลังเก็บรายวัน: มกราคม 7, 2014

SQL จำนวนผู้ได้รับการคัดกรอง NCD อายุ 15-34 ปี แยกรายหมู่

SQL จำนวนผู้ได้รับการคัดกรอง NCD อายุ 15-34 ปี แยกรายหมู่

==================================================
SELECT village.villno AS หมู่
,village.villname AS บ้าน
,SUM(CASE WHEN person.sex = ‘1’ THEN 1 ELSE 0 END) AS ชาย
,SUM(CASE WHEN person.sex = ‘2’ THEN 1 ELSE 0 END) AS หญิง
,SUM(CASE WHEN person.sex = ‘1’OR person.sex = ‘2’ THEN 1 ELSE 0 END) AS รวม

FROM person
INNER JOIN house ON person.pcucodeperson = house.pcucode AND person.hcode = house.hcode
INNER JOIN village ON house.pcucode = village.pcucode AND house.villcode = village.villcode
WHERE
RIGHT(house.villcode,2)!= ’00’ #เป็นหมู่บ้านในเขตบริการ
AND CONCAT(person.pid,person.pcucodeperson)
NOT IN (SELECT CONCAT(persondeath.pid,persondeath.pcucodeperson)
FROM persondeath
WHERE deaddate <= CURDATE() or deaddate is not NULL)#ตัดคนตายออกไป
AND YEAR( FROM_DAYS( DATEDIFF( NOW( ) ,person.birth ) ) ) BETWEEN ’15’ AND ’34’ #อายุ15ปีถึง34ปี
AND person.pid IN
(select ncd_person_ncd_screen.pid from ncd_person_ncd_screen)
GROUP BY village.villcode;

แหล่งที่มา

MOPH.IT.Community

ชุมชน IT กระทรวงสาธารณสุข

SQL รายชื่อประชากรในเขตบริการที่ยังไม่ได้รับการคัดกรอง NCD

SELECT person.pid
,ctitle.titlename
,person.fname
,person.lname
,person.hnomoi
,person.mumoi
,ROUND(DATEDIFF(CURDATE(),birth)/365) as age_y
FROM person
INNER JOIN house ON person.pcucodeperson = house.pcucode AND person.hcode = house.hcode
INNER JOIN ctitle ON person.prename = ctitle.titlecode
LEFT JOIN ncd_person_ncd_screen ON person.pid = ncd_person_ncd_screen.pid
WHERE ncd_person_ncd_screen.pid IS NULL #ตัดคนที่คัดกรอง NCD แล้ว
AND CONCAT(person.pid,person.pcucodeperson)
NOT IN (SELECT CONCAT(persondeath.pid,persondeath.pcucodeperson)
FROM persondeath
WHERE deaddate <= CURDATE() or deaddate is not NULL)#ตัดคนตายออกไป
AND YEAR( FROM_DAYS( DATEDIFF( NOW( ) ,person.birth ) ) ) > 14 #อายุ15ปีขึ้นไป
AND RIGHT(house.villcode,2) != ’00’#เป็นหมู่บ้านในเขตบริการ

pcu แยกจำนวนประชากกร 15 ปีขึ้นไป และ 30 ปีขึ้นไป แยกตามหมู่บ้าน แยกตามเพศ (ในเขตรับผิดชอบ และอยู่จริง (type 1)

select v.village_moo,v.village_name,
sum(case when p.sex=’1’then 1 else 0 end) as M,
sum(case when p.sex=’2′ then 1 else 0 end) as W,
sum(case when p.sex=’1′ or p.sex=’2′ then 1 else 0 end) as total
from person p
inner join village v on v.village_id=p.village_id
where (p.age_y between ’35’ and ‘200’) and (p.village_id not in (‘1′)) and (p.death !=””) and (p.house_regist_type_id=’1’)
group by p.village_id