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,028

HOME > PHP > PHP Forum > ใครมีวิธีจัดการข้อมูลแนวนี้หน่อยไหมครับ ช่วยดูทีครับ



 

ใครมีวิธีจัดการข้อมูลแนวนี้หน่อยไหมครับ ช่วยดูทีครับ

 



Topic : 117755



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



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



คือผมมีฐานข้อมูล แบบนี้อะครับ แล้วผมจะเช็คว่า แต่ละช่องมีข้อมูลรึยัง ถ้ามีผมจะเอาไปคำนวณ เป็น % ความคืบหน้าการทำงานบนเว็บ ใช้ php เขียน ดึงจาก ฐานข้อมูล Mssql 2008

sql1

ซึ่ง อันด้านบนเป็นส่วนหนึ่ง ส่วนด้านล่างนี่เป็นอีกส่วน ซึ่งต้องนำมาคำนวณเป็น % เหมือนกัน

sql2

สรุปคือ ส่วนด้านบนต้องมาคำนวณ เป็น 70 % ข้างล่างอีก 30%
คือคำนวณอันข้างล่าง 30 % ได้แล้วเพราะ ชื่อสาขา หรือ ID มันไม่ซ้ำจึงเช็คได้ง่าย แต่พออีกที่มีชื่อสาขาซ้ำเลขซ้ำ
จะ query ออกมาแบบไม่ซ้ำ ก็เช็คไม่ได้ว่ารายไหนมี % การทำงานถึงขั้นไหนแล้ว ตอนนี้ผมลองหลายแบบแล้วยังเช็คไม่ได้เลย มึมมากเลยครับ
ยังไงรบกวนช่วยทีนะครับ ปัญหาแค่นี้ผมติดมาจะ 2 อาทิตย์แล้วครับ T^T เศร้ามาก ท่านเทพท่านใดโปรดช่วยผมทีครับ
ขอบคุณครับ



Tag : PHP, Ms SQL Server 2008









ประวัติการแก้ไข
2015-07-13 11:35:00
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-07-13 11:34:15 By : sevendada View : 1007 Reply : 17
 

 

No. 1



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



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

ข้างบนจะเอาอะไรออกมานะครับ

เคยใช้ SubQuery เปล่าครับ


ผมก็มั่ว ๆ นะครับ


Code (SQL)
Select 
                 Branch_ID,
                 Branch_Name,
                 Last_Update,
                 Receipt_Not_Approve,
                 Receipt_All From,
                (Select count(*) FROM TBContract WHERE TBContract.Branch_ID =  TBBranch.Branch_ID) as Rows
FROM  TBBranch









ประวัติการแก้ไข
2015-07-13 11:49:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 11:48:51 By : Digitalhong
 


 

No. 2



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : Digitalhong เมื่อวันที่ 2015-07-13 11:48:51
รายละเอียดของการตอบ ::
ข้างบนผมจะเช็ค HF_Get_Contract HF_Called_Date HF_Car_Motor_Number HF_Car_Model_Number อะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 13:14:59 By : sevendada
 

 

No. 3



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



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

ตอบความคิดเห็นที่ : 2 เขียนโดย : sevendada เมื่อวันที่ 2015-07-13 13:14:59
รายละเอียดของการตอบ ::


อยากเห็นข้อมูลที่ต้องการให้แสดง เป็นผลลัพธ์ อ่ะครับ ว่ามันเป็นยังไง พอมีในใจหรือเปล่าครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 14:30:42 By : Digitalhong
 


 

No. 4



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



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

ตอบความคิดเห็นที่ : 3 เขียนโดย : Digitalhong เมื่อวันที่ 2015-07-13 14:30:42
รายละเอียดของการตอบ ::
คือผมเช็คจากตารางข้างบนสองอันอย่างที่บอก ถ้าตารางแรกนำมาคิดจะได้เป็น 70 % อีกตารางจะคิดได้ เป็น 30 % ของทั้งหมด
ตอนนี้ได้ แค่อันที่เป็น 30 % อันนี้คือหน้าที่ออกแบบครับ
ตอนนี้วนลูป query ออกมาตามตารางที่สอง เหลือ แค่จะเอาตารางแรกมาเช็คว่า ถ้ามันตรงกับสาขาที่มีอยู่ แล้วค่อยเอามาเพิ่ม แล้วเช็คว่า
ในฟิล HF_Get_Contract HF_Called_Date HF_Car_Motor_Number HF_Car_Model_Number มีข้อมูลรึเปล่า ถ้ามีจะบวกตามลำดับคือ
25 25 10 10 รวมทั้งหมดเป็น 70 % แล้วนำมารวมกับ 30 % แรกที่ผมทำการคำนวณไว้แล้ว แล้วคราวนี้มันมีรายการที่มีสาขาที่มี 70 % 3สาขา แล้วผมไม่รู้จะเช็คยังไงต่ออะครับ เพื่อนำมารวมให้เป็น 100 %

process



ประวัติการแก้ไข
2015-07-13 15:41:51
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 15:40:07 By : sevendada
 


 

No. 5



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



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

Code
select branch_id, branch_name, sum(percent) from ( select branch_id, branch_name, 70 percent from table1 where ........ union all select branch_id, branch_name, 30 percent from table2 where ........ ) group by branch_id


สีแดงกับสีฟ้า เป็น statement ที่คุณทำไว้แล้ว สำหรับ ทั้งสอง ตาราง เอามาใส่แทน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 16:01:28 By : NewbiePHP
 


 

No. 6



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



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-07-13 16:01:28
รายละเอียดของการตอบ ::
ผมใช้ Mssql 2008 นะครับ เหมือนจะใช้แบบนี้ไม่ได้อะครับ T^T

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 16:07:33 By : sevendada
 


 

No. 7



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



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

Code (SQL)
select branch_id, branch_name, sum(percent) as sum_percent
from (
   select  branch_id, branch_name, 70 as percent from table1 where ........
   union all 
   select  branch_id, branch_name, 30 as percent from table2 where ........
) as temp_table group by branch_id, branch_name



ใส่ as ใส่ group by ทุก field ที่ ต้องการให้แสดง


ประวัติการแก้ไข
2015-07-13 16:28:14
2015-07-13 16:29:06
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 16:25:17 By : NewbiePHP
 


 

No. 8



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



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

ตอบความคิดเห็นที่ : 7 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-07-13 16:25:17
รายละเอียดของการตอบ ::
คือถ้าคำนวณเปอร์เซ็นผมเอามาเช็คและคำนวณ ใน php อะครับ ไม่ได้เอามาจากใน ตาราง Mssql
ถ้าตารางแรก ผมจะเช็คว่า
HF_Get_Contract!=0 เพิ่ม 25 %
HF_Called_Date!="" เพิ่ม 25%
HF_Car_Motor_Number !="" 10%
HF_Car_Model_Number !="" 10%
ส่วนตารางที่สองเนี่ย ผมจะเช็คว่า Receipt_Not_Approve มีเป็นกี่ % ของ Receipt_All ครับ
ทั้งหมดนี่ผมคำนวณใน php อะครับ เพราะฐานข้อมูลนี่เป็นข้อมูลได้มาจากหัวหน้าอีกที ผมไม่มี permission เข้าไปจัดการ DB อะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 16:43:35 By : sevendada
 


 

No. 9



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



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

สงสัย แล้วข้อมูลที่เอามาแสดงเอามาจากไหนครับ

คุณมีสิทธิ์แก้ไข php ไหมครับ แล้ว มีสิทธิ์ใช้คำสั่ง query database หรือเปล่า
ใช้แค่สิทธิ์ การอ่าน ข้อมูล database เท่านั้นครับ ไม่ได้แก้ไขอะไรเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 17:53:21 By : NewbiePHP
 


 

No. 10

Guest


ประมาณนี้...มั้ง
Code (SQL)
select * ,(((Receipt_Not_Approve*1.0)/(Receipt_All*1.0)*30.0)+p70) as p100
from Branch 
inner join 
(select Branch_ID ,
  case when HF_Get_Contract is null or HF_Get_Contract='0' then 0 else 25 end
  +case when HF_Called_Date is null then 0 else 25 end
  +case when HF_Car_Motor_Number is null or HF_Car_Motor_Number='' then 0 else 10 end
  +case when HF_Car_Model_Number is null or HF_Car_Model_Number='' then 0 else 10 end as p70
from(
    SELECT
    Branch_ID,
    max(HF_Get_Contract) as HF_Get_Contract,
    max(HF_Called_Date) as HF_Called_Date,
    max(HF_Car_Motor_Number) as HF_Car_Motor_Number,
    max(HF_Car_Model_Number) as HF_Car_Model_Number
    FROM Contract
    group by Branch_ID) as a) as b
on Branch.Branch_ID=b.Branch_ID

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 19:51:24 By : ผ่านมา
 


 

No. 11



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



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

ตอบความคิดเห็นที่ : 9 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-07-13 17:53:21
รายละเอียดของการตอบ ::
ใช่ครับ มีสิทธิ์แค่อ่านออกมาครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 20:14:25 By : sevendada
 


 

No. 12



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



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

ตอบความคิดเห็นที่ : 10 เขียนโดย : ผ่านมา เมื่อวันที่ 2015-07-13 19:51:24
รายละเอียดของการตอบ ::
ขอบคุณครับ ไว้เดวผมจะลองพรุ่งนี้เช้าครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 20:16:14 By : sevendada
 


 

No. 13



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



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

ถ้าคิวรี่ได้ ก็น่าจะทำตามที่บอกได้ครับ
แต่ก็สงสัยต่อ ในกรณีที่ ตาราง1 มี Branch_ID ซ้ำกัน จะคิด percent อย่างไร
ถ้ามี 2 เรคคอร์ด แต่ละrecord / 2 ตามจำนวน record หรือเปล่า
ถ้าแบ่งเฉลี่ยตามจำนวนเรคคอร์ด ก็ ตามนี้เลยครับ


Code (SQL)
select Branch_ID, Branch_Name, sum(percent) as total 
from (
	select Branch_ID, Branch_Name, (Receipt_Not_Approve * 30 / Receipt_All) as percent from table2
	union all
	select Branch_ID, Branch_Name,
		(sum(HF_Get_Contract>0) * 25 / count( Branch_ID) ) + 
		(sum(HF_Called_Date>'') * 25 / count( Branch_ID)) +
		(sum(HF_Car_Motor_Number>'') * 10 / count( Branch_ID)) +
		(sum(HF_Car_Modal_Number>'') * 10 / count( Branch_ID)) as percent
	from table1 group by Branch_ID, Branch_Name
) as t1 
group by Branch_ID, Branch_Name 

แต่ถ้าไม่ ก็ปรับใช้เอานะครับ


ประวัติการแก้ไข
2015-07-13 21:41:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 21:31:09 By : NewbiePHP
 


 

No. 14



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



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

ตอบความคิดเห็นที่ : 13 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-07-13 21:31:09
รายละเอียดของการตอบ ::
นั้นแหละที่ผม งง อยู่ คือถ้ามันซ้ำก็ต้องนับจำนวนที่ซ้ำแล้วเอามาหารที่รวมไว้ เฉพาะสาขาที่ซ้ำอะครับ
เดวยังไงจะลองใช้ดูครับ ขอบคุณล่วงหน้านะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-13 21:35:11 By : sevendada
 


 

No. 15



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



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

ตอบความคิดเห็นที่ : 10 เขียนโดย : ผ่านมา เมื่อวันที่ 2015-07-13 19:51:24
รายละเอียดของการตอบ ::
สอบถามหน่อยครับถ้าเกิดว่า สาขาในตารางแรกไม่ตรงกับตารางสอง จะกำหนดยังไง ให้ p 70 มีค่า=0อะครับ



ประวัติการแก้ไข
2015-07-14 10:32:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-14 10:32:17 By : sevendada
 


 

No. 16



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



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

Code (SQL)
select Branch_ID, Branch_Name, (sum(percent) * sum(chk) ) as total 
from (
	select Branch_ID, Branch_Name, (Receipt_Not_Approve * 30 / Receipt_All) as percent, 1 as chk from table2
	union all
	select Branch_ID, Branch_Name,
			(sum(HF_Get_Contract>0) * 25 / count( Branch_ID) ) + 
			(sum(HF_Called_Date>'') * 25 / count( Branch_ID)) +
			(sum(HF_Car_Motor_Number>'') * 10 / count( Branch_ID)) +
			(sum(HF_Car_Modal_Number>'') * 10 / count( Branch_ID)) as percent,
			0 as chk
	from table1 group by Branch_ID, Branch_Name
) as t1 
group by Branch_ID, Branch_Name


ถ้า chk เป็น 1 แสดงว่า มีค่าจาก ตาราง 2
ถ้า chk เป็น 0 แสดงว่า ตาราง 2 ไม่มี
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-14 10:52:49 By : NewbiePHP
 


 

No. 17



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



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

ตอบความคิดเห็นที่ : 16 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-07-14 10:52:49
รายละเอียดของการตอบ ::
ขอบคุณมากครับ ผมลองประยุกต์ใช้แล้วพอได้ละครับ ขอบคุณมากๆครับ



ประวัติการแก้ไข
2015-07-14 11:36:24
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-07-14 11:04:34 By : sevendada
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ใครมีวิธีจัดการข้อมูลแนวนี้หน่อยไหมครับ ช่วยดูทีครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่