Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > อยากให้ช่วยดู SQL คิวรี่ข้อมูลให้หน่อยค่ะถ้าจะcount ต้องทำไงค่ะ งมมาหลายวันแร้วค่ะขอบคุณค่ะ



 

อยากให้ช่วยดู SQL คิวรี่ข้อมูลให้หน่อยค่ะถ้าจะcount ต้องทำไงค่ะ งมมาหลายวันแร้วค่ะขอบคุณค่ะ

 



Topic : 079905



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



Code (PHP)
-- รายงานค่ารักษาพยาบาลผู้ป่วยนอก ออกรายงาน ตามวันที่เข้ารับบริการ
SELECT t_patient.patient_hn as HN
    , t_visit.visit_vn as VN
	, t_patient.patient_pid as ปชช
	, f_patient_prefix.patient_prefix_description AS คำนำหน้า
	, t_patient.patient_firstname  AS ชื่อ
	, t_patient.patient_lastname  AS นามสกุล
	, t_patient.patient_birthday as วันเกิด
	, t_visit.visit_patient_age  AS อายุ
    , f_patient_race_id as เชื้อชาติ
    , f_patient_nation_id As สัญชาติ
    , substr(visit_begin_visit_time,1,10 ) as วันที่เข้ารับบริการ
    , substr( visit_staff_doctor_discharge_date_time,1,10) as วันที่จำหน่าย
---จะ count สิทธิการรักษา 
    , contract_plans_description  AS สิทธิการรักษา

	, t_visit_payment.visit_payment_main_hospital as ประจำ
 	, t_visit_payment.visit_payment_sub_hospital as ปฐมภูมิ
    , t_diag_icd10.diag_icd10_number as รหัสโรค
    , ค่าห้อง_อาหาร
	, อวัยวะเทียม
	, ยาและสารอาหาร
	, ยากลับบ้าน
	, เวชภัณฑ์
	, บริการโลหิต
	, วินิจฉัยทางเทคนิค
	, วินิจฉัยและรังสีวิทยา
	, วินิจฉัยวิธีพิเศษ
	, อุปกรณ์
	, ผ่าตัด_หัตถการ
	, พยาบาล
	, ทันตกรรม
	, กายภาพบำบัด
	, ฝังเข็ม
	, อื่น
   , Total
   , Paid
   , Remain
 

FROM b_contract_plans 
	INNER JOIN ((((
		(   
		SELECT Insurance1.t_visit_id
			, Sum(case when Gr16='1' then N end) AS ค่าห้อง_อาหาร
			, Sum(case when Gr16='2' then N end) AS อวัยวะเทียม
			, Sum(case when Gr16='3' then N end) AS ยาและสารอาหาร
			, Sum(case when Gr16='4_OH' then N end) AS ยากลับบ้าน
			, Sum(case when Gr16='5' then N end) AS เวชภัณฑ์
			, Sum(case when Gr16='6' then N end) AS บริการโลหิต
			, Sum(case when Gr16='7' then N end) AS วินิจฉัยทางเทคนิค
			, Sum(case when Gr16='8' then N end) AS วินิจฉัยและรังสีวิทยา
			, Sum(case when Gr16='9' then N end) AS วินิจฉัยวิธีพิเศษ
			, Sum(case when Gr16='A' then N end) AS อุปกรณ์
			, Sum(case when Gr16='B' then N end) AS ผ่าตัด_หัตถการ
			, Sum(case when Gr16='C' then N end) AS พยาบาล
			, Sum(case when Gr16='D' then N end) AS ทันตกรรม
			, Sum(case when Gr16='E' then N end) AS กายภาพบำบัด
			, Sum(case when Gr16='F' then N end) AS ฝังเข็ม
			, Sum(case when Gr16='G' then N end) AS อื่น

	
	FROM 
	
			( 
			SELECT t_billing_invoice_item.t_visit_id
				, b_item_16_group.item_16_group_number AS Gr16
				, Sum(t_billing_invoice_item.billing_invoice_item_total) AS N
			FROM (b_item_16_group 
				INNER JOIN b_item 
				ON b_item_16_group.b_item_16_group_id = b_item.b_item_16_group_id) 
				INNER JOIN t_billing_invoice_item 
				ON b_item.b_item_id = t_billing_invoice_item.b_item_id
			WHERE (((t_billing_invoice_item.billing_invoice_item_active)='1'))
			GROUP BY t_billing_invoice_item.t_visit_id, b_item_16_group.item_16_group_number
			ORDER BY t_billing_invoice_item.t_visit_id,Gr16

			) as Insurance1
	GROUP BY Insurance1.t_visit_id
    order by t_visit_id

	) as Insurance2 
	INNER JOIN (f_patient_prefix 
	RIGHT JOIN (t_patient 
	INNER JOIN t_visit 
	ON t_patient.t_patient_id = t_visit.t_patient_id) 
	ON f_patient_prefix.f_patient_prefix_id = t_patient.f_patient_prefix_id) 
	ON Insurance2.t_visit_id = t_visit.t_visit_id) 
	INNER JOIN t_diag_icd10 
	ON t_visit.t_visit_id = t_diag_icd10.diag_icd10_vn) 
	INNER JOIN 

        (     select t_visit_id
                            ,sum(billing_total) as Total
                            ,sum(billing_paid) as Paid
                            ,sum(billing_remain) as Remain
               from t_billing
               where billing_active='1'
               group by t_visit_id
               order by t_visit_id

                )as t_billing1 
	ON t_visit.t_visit_id = t_billing1.t_visit_id) 
	INNER JOIN t_visit_payment 
	ON t_visit.t_visit_id = t_visit_payment.t_visit_id) 
	ON b_contract_plans.b_contract_plans_id = t_visit_payment.b_contract_plans_id
WHERE (((t_visit.f_visit_status_id)<>'4') 
	AND ((t_visit_payment.visit_payment_active)='1') 
	and ((t_diag_icd10.diag_icd10_active)='1') 
	and ((t_diag_icd10.f_diag_icd10_type_id)='1'))
    and (substr(visit_begin_visit_time,1,10) between substr(?,1,10) and substr(?,1,10)) 
    and f_visit_type_id ='0'

 
order by  t_visit.visit_begin_visit_time


คือว่าหนูจะ count สิทธิการรักษา ว่าแต่ละสิทธิมีค่าใช้จ่ายรวมเท่าไร จ่ายเท่าไร ยังค้างอยุ่เท่าไรน่ะค่ะ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-06-18 09:06:30 By : nooneebooja View : 1841 Reply : 7
 

 

No. 1

Guest


ยาวจังแฮะ ข้อมูลที่ต้องการ count มันอยุ่ในตารางเดียวกันหรือป่าว
ถ้า count ยาวขนาดนี้เอาตารางมาด้วยอาจช่วยได้เยอะนะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-18 11:19:01 By : บังเอิญผ่านมาเห็น
 


 

No. 2



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

อยู่คนล่ะตารางค่ะ

คือว่าเป็นข้อมูลของโรงพยาบาล ตารางเยอะมากค่ะ และก็จอยหลายตาราง แต่ฟิลด์ที่จะ count คือ contract_plans_description อยู่ในตาราง b_contract_plans
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-18 11:46:55 By : nooneebooja
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ต้องเทพ Query จริงครับ ถึงจะดูออก ยาวเกิน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-18 17:38:42 By : mr.win
 


 

No. 4



โพสกระทู้ ( 3,156 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


สุดยอดของ SQL ครับ ไล่ไม่ถูก ไปไม่เป็นกันเลยล่ะครับ

ผมว่าเซิร์ฟเวอร์แบกโหลดไม่ไหวแน่ กว่าจะได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-18 17:55:07 By : sakuraei
 


 

No. 5



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ลักษณะตารางนี่มันของ hospital os ใช่มั้ยครับ เดี๋ยวถ้ามีเวลาจะช่วยดูให้นะครับ (ตอนนี้ไม่ได้ใช้ Hospital OS แล้ว)
แต่ concept ก็คือ SELECT ข้อมูลทั้งหมดออกมาให้ได้ก่อนครับ ไม่ว่าจะ Joint กันกี่ตารางก็ตาม
หลังจาก SELECT ได้ครบตามเงื่อนไขแล้ว ค่อยนำมา GROUP BY ตามสิ่งที่ต้องการ
พร้อมทั้งใช้ ฟังก์ชั่น COUNT ไปด้วย (คิดว่าน่าจะใช้ PostgreSQL ด้วยใช่มั้ยครับ)

แต่ระวังเรื่อง data type โดยเฉพาะความกว้างของ Field ด้วยนะครับ เพราะตอนที่ผมใช้อยู่มันตั้งไว้ 255 ทุกฟิลดิ์เลย
มันเลยทำให้เป็นอุปสรรคในการคิวรี่น่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-18 22:12:35 By : Songkram
 


 

No. 6



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบคุณทุกๆคนนะค่ะ เยอะจิงๆค่ะเขียนรันทีรอนานมาก ^^

ขอบคุณ คุณ NOOM ที่ให้แนวคิดค่ะ
ใช่ตัว hospital os ค่ะแล้วก็ใช้ PostgreSQL ด้วยค่ะ เคยใช้แต่แบบอื่นพอมาเจอ งง มากเรยค่ะ ตอนนี้ได้แล้วค่ะ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-22 11:15:36 By : nooneebooja
 


 

No. 7



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ถ้าไม่มองเรื่องโหลดที่ server ก็ ทำเป็น subquery ทับ แล้ว group สิทธิ count VN sum ค่าใช้จ่ายก็ พอแล้วอันไหนไม่เอาก็ไม่ต้องเอามา
เอาเป็นแนวไปเน้อ

Select QR_1.สิทธิการรักษา , count(QR_1.vn) , sum(QR_1.ค่า........) , ........

From ( เอาที่ทำมาวางเลย ) AS QR_1

Group by QR_1.สิทธิการรักษา

อื่ม อีกนิดเท่าที่อ่านข้างบนมา ไม่ได้กำหนดลำดับสิทธิเข้ารับบริการถ้าเกิดว่าการเข้ารับบริการมี 2 สิทธิขึ้นมาจะทำให้ยอดผิดได้นะ ตรวจสอบดูด้วยว่ามีการให้สิทธิเข้ารับบริการมากกว่า 1 รึป่าว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-25 18:08:14 By : Amee
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากให้ช่วยดู SQL คิวรี่ข้อมูลให้หน่อยค่ะถ้าจะcount ต้องทำไงค่ะ งมมาหลายวันแร้วค่ะขอบคุณค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่