BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: golf_pk ที่ กรกฎาคม 04, 2014, 18:38:19 PM

หัวข้อ: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_pk ที่ กรกฎาคม 04, 2014, 18:38:19 PM
select count(distinct(hn)) as hn from ovstdiag o

where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099"

union

select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and  ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099"


มันจะได้ผู้จำนวนผู้ป่วยออกมา 2 บรรทัด  แต่อยากให้ทั้งสองบวกกันทำไงดีครับ.......
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_pk ที่ กรกฎาคม 04, 2014, 18:39:24 PM
ดันครับ ...
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_pk ที่ กรกฎาคม 04, 2014, 18:41:48 PM
ขออธิบายเพิ่มเติมครับ  นี้คือโจทย์ หาจำนวนผู้ป่วยที่เป็นโรค อุจจาระร่วง ครับ 
พอเอามา union แล้ว  แต่กลับทำให้เป็นตัวเลขรวมใน 1 บรรทัดไม่ได้ครับ 
มือใหม่หัดเขียนครับ
 ??? ??? ??? ??? ???
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_win ที่ กรกฎาคม 04, 2014, 18:52:26 PM
ใช้เป็น variable กำหนดตัวแปรมารับค่า แล้วค่อยเอามาบวกกัน ไม่รู้ว่าจะชอบวิธีการนี้หรือป่าวครับ แต่ผมว่าง่ายดีนะ
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: Terminator2015 ที่ กรกฎาคม 04, 2014, 18:52:56 PM
 ;D แบบนี้ไหมครับ

select count(distinct(hn)) as hn from ovstdiag o

where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099";

+

select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and  ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099" ;
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_pk ที่ กรกฎาคม 04, 2014, 18:56:04 PM
ผมไปเจอรูปแบบนี้มา  


select tem.name, count(*)
from(select name from results
union all
select name from archive_results) as tem
group by name
order by name



แต่จะปรับเข้ากับโค้ดนี้อย่างไร
select count(distinct(hn)) as hn from ovstdiag o

where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099"

union

select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and  ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099"
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_pk ที่ กรกฎาคม 04, 2014, 18:59:31 PM
;D แบบนี้ไหมครับ

select count(distinct(hn)) as hn from ovstdiag o

where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099";

+

select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and  ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099" ;


ผมลองรันในสายฟ้าแล้ว  Error ครับ
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_pk ที่ กรกฎาคม 04, 2014, 19:05:41 PM
พอดีได้โจทย์นี้มาครับ

หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: Terminator2015 ที่ กรกฎาคม 04, 2014, 19:50:38 PM
;D แบบนี้ไหมครับ

select count(distinct(hn)) as hn from ovstdiag o

where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099";

+

select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and  ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099" ;


ผมลองรันในสายฟ้าแล้ว  Error ครับ

ลอง Run Navicat ดูนะครับ ผม Run ได้ปกตินะ
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_pk ที่ กรกฎาคม 04, 2014, 20:50:47 PM
;D แบบนี้ไหมครับ

select count(distinct(hn)) as hn from ovstdiag o

where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099";

+

select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and  ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099" ;

 ;D ;D ;D ;D ได้แล้วครับ
ขอบคุณมากครับ

select ( select count(distinct(hn)) as hn from ovstdiag o
where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099" )
     + ( select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and  ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and  icd10 BETWEEN "A070" and "A099" )
        as total_rows
หัวข้อ: Re: ขอความช่วยเหลือจาก อ.ทุกท่านครับ อยาก count จากการ union?????
เริ่มหัวข้อโดย: golf_pk ที่ กรกฎาคม 04, 2014, 20:55:20 PM
ขอบคุณ อ.terminator2014
และอ.golf_win  มาก ๆ ครับ
ผมได้ไปต่อละ  ขอบคุณคร๊าฟฟ